WikidataBuilder has uploaded a new change for review.

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

Change subject: New Wikidata Build - 2016-06-02T10:00:01+0000
......................................................................

New Wikidata Build - 2016-06-02T10:00:01+0000

Change-Id: I5277264637555de07c9a3312e5ea18f9584f29b8
---
M composer.lock
M extensions/MediaInfo/WikibaseMediaInfo.entitytypes.php
M extensions/MediaInfo/src/View/MediaInfoView.php
M extensions/Wikibase/client/i18n/fr.json
M extensions/Wikibase/client/i18n/gd.json
M extensions/Wikibase/docs/entitytypes.wiki
A extensions/Wikibase/lib/includes/EntityIdComposer.php
M extensions/Wikibase/lib/includes/EntityTypeDefinitions.php
A extensions/Wikibase/lib/tests/phpunit/EntityIdComposerTest.php
M extensions/Wikibase/lib/tests/phpunit/EntityTypeDefinitionsTest.php
M extensions/Wikibase/repo/i18n/gl.json
M extensions/Wikibase/repo/i18n/id.json
A extensions/Wikibase/repo/i18n/map-bms.json
M extensions/Wikibase/repo/includes/Specials/SpecialNewEntity.php
M extensions/Wikibase/repo/includes/WikibaseRepo.php
M extensions/Wikibase/view/resources/jquery/ui/jquery.ui.tagadata.js
M extensions/Wikibase/view/src/EntityView.php
M extensions/Wikibase/view/src/ItemView.php
M extensions/Wikibase/view/src/PropertyView.php
M extensions/Wikibase/view/src/SimpleEntityTermsView.php
M vendor/composer/autoload_classmap.php
M vendor/composer/installed.json
22 files changed, 383 insertions(+), 119 deletions(-)


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

diff --git a/composer.lock b/composer.lock
index 23eb22a..5167f2a 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1417,7 +1417,7 @@
             "source": {
                 "type": "git",
                 "url": 
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseMediaInfo";,
-                "reference": "8111551b13188e898811f2af51637997a2a08f64"
+                "reference": "e84d40545842733639864ed93ffcb084b2af98ad"
             },
             "require": {
                 "php": ">=5.5.0",
@@ -1463,7 +1463,7 @@
                 "issues": "https://phabricator.wikimedia.org/";,
                 "irc": "irc://irc.freenode.net/wikidata"
             },
-            "time": "2016-05-31 07:02:52"
+            "time": "2016-06-01 14:18:14"
         },
         {
             "name": "wikibase/quality",
@@ -1569,12 +1569,12 @@
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-                "reference": "8307e06a9ab386302085184571dcad270ef4a77d"
+                "reference": "353b78ab83cf8caab31386e3d0db035c5f403e5a"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/8307e06a9ab386302085184571dcad270ef4a77d";,
-                "reference": "8307e06a9ab386302085184571dcad270ef4a77d",
+                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/353b78ab83cf8caab31386e3d0db035c5f403e5a";,
+                "reference": "353b78ab83cf8caab31386e3d0db035c5f403e5a",
                 "shasum": ""
             },
             "require": {
@@ -1646,7 +1646,7 @@
                 "wikibaserepo",
                 "wikidata"
             ],
-            "time": "2016-05-31 09:34:42"
+            "time": "2016-06-02 09:38:29"
         },
         {
             "name": "wikibase/wikimedia-badges",
diff --git a/extensions/MediaInfo/WikibaseMediaInfo.entitytypes.php 
b/extensions/MediaInfo/WikibaseMediaInfo.entitytypes.php
index 0c142d8..d402d75 100644
--- a/extensions/MediaInfo/WikibaseMediaInfo.entitytypes.php
+++ b/extensions/MediaInfo/WikibaseMediaInfo.entitytypes.php
@@ -83,12 +83,10 @@
                                
$wikibaseRepo->getLanguageFallbackLabelDescriptionLookupFactory()
                        );
                },
-               'entity-id-builder-pair' => [
-                       MediaInfoId::PATTERN,
-                       function( $serialization ) {
-                               return new MediaInfoId( $serialization );
-                       }
-               ],
+               'entity-id-pattern' => MediaInfoId::PATTERN,
+               'entity-id-builder' => function( $serialization ) {
+                       return new MediaInfoId( $serialization );
+               },
                'entity-differ-strategy-builder' => function() {
                        return new MediaInfoDiffer();
                },
diff --git a/extensions/MediaInfo/src/View/MediaInfoView.php 
b/extensions/MediaInfo/src/View/MediaInfoView.php
index bb1dc64..d213926 100644
--- a/extensions/MediaInfo/src/View/MediaInfoView.php
+++ b/extensions/MediaInfo/src/View/MediaInfoView.php
@@ -61,7 +61,7 @@
                        throw new InvalidArgumentException( '$entity must be a 
MediaInfo entity.' );
                }
 
-               $html = $this->getHtmlForFingerprint( $entity )
+               $html = $this->getHtmlForTerms( $entity )
                        . $this->templateFactory->render( 'wikibase-toc' )
                        . $this->statementSectionsView->getHtml( 
$entity->getStatements() );
 
diff --git a/extensions/Wikibase/client/i18n/fr.json 
b/extensions/Wikibase/client/i18n/fr.json
index 70de2d6..2d88bd8 100644
--- a/extensions/Wikibase/client/i18n/fr.json
+++ b/extensions/Wikibase/client/i18n/fr.json
@@ -17,7 +17,8 @@
                        "Mattho69",
                        "Macofe",
                        "Yasten",
-                       "Dcausse"
+                       "Dcausse",
+                       "Wladek92"
                ]
        },
        "wikibase-client-desc": "Client pour l’extension Wikibase",
@@ -32,7 +33,7 @@
        "apihelp-query+wikibase-param-prop": "Quelles propriétés obtenir 
:\n;<kbd>url</kbd>: URL de base, chemin du script et chemin de l’article du 
référentiel Wikibase.\n;<kbd>siteid</kbd>: Le siteid de ce site.",
        "wikibase-after-page-move": "Vous devriez aussi mettre à jour [$1 
l’élément {{WBREPONAME}}] associé pour conserver les liens de langue sur la 
page déplacée.",
        "wikibase-after-page-move-queued": "L’[$1 élément {{WBREPONAME}}] 
associé avec cette page sera mis à jour automatiquement. Veuillez noter que 
cela peut ne pas être instantané.",
-       "wikibase-after-page-delete": "Vous pouvez aussi supprimer le lien vers 
cette page depuis l’[$1 {{WBREPONAME}} élément associé] pour maintenir les 
liens de langue.",
+       "wikibase-after-page-delete": "Vous devriez aussi supprimer le lien 
vers cette page depuis l’[$1 {{WBREPONAME}} élément associé] pour conserver les 
liens de langue.",
        "wikibase-after-page-delete-queued": "L’[$1 élément {{WBREPONAME}}] 
associé avec cette page sera automatiquement mis à jour. Veuillez noter que 
cela peut ne pas être instantané.",
        "wikibase-comment-add": "Un élément {{WBREPONAME}} a été créé.",
        "wikibase-comment-remove": "Élément {{WBREPONAME}} associé supprimé. 
Liens de langue supprimés.",
diff --git a/extensions/Wikibase/client/i18n/gd.json 
b/extensions/Wikibase/client/i18n/gd.json
index 186ecb3..275915c 100644
--- a/extensions/Wikibase/client/i18n/gd.json
+++ b/extensions/Wikibase/client/i18n/gd.json
@@ -7,8 +7,8 @@
        },
        "wikibase-client-desc": "Cliant airson an tuilleadain Wikibase",
        "tooltip-t-wikibase": "Ceangail ri nì san ionad-tasgaidh dàta 
co-cheangailte",
-       "wikibase-after-page-move": "Faodaidh tu an nì {{WBREPONAME}} 
co-cheangailte [$1 ùrachadh] cuideachd gus na ceanglaichean cànain a 
ghlèidheadh air an duilleag air a ghluasad.",
-       "wikibase-after-page-move-queued": "Thèid [$1 an nì {{WBREPONAME}}] a 
tha co-cheangailte ris an duilleag seo ùrachadh gu fèin-obrachail a 
dh'aithghearr.",
+       "wikibase-after-page-move": "Bu chòir dhut [$1 an nì {{WBREPONAME}} 
co-cheangailte] ùrachadh cuideachd gus na ceanglaichean cànain a ghlèidheadh 
air an duilleag air a ghluasad.",
+       "wikibase-after-page-move-queued": "Thèid [$1 an nì {{WBREPONAME}}] a 
tha co-cheangailte ris an duilleag seo ùrachadh gu fèin-obrachail a 
dh'aithghearr. Thoir an aire nach tachair seo sa bhad ma dh'fhaoidte.",
        "wikibase-comment-add": "Chaidh nì {{WBREPONAME}} a chruthachadh.",
        "wikibase-comment-remove": "Chaidh an nì {{WBREPONAME}} co-cheangailte 
air a sguabadh às. Chaidh na ceanglaichean cànain a thoirt air falbh.",
        "wikibase-comment-linked": "Chaidh nì {{WBREPONAME}} a cheangal ris an 
duilleag seo.",
@@ -35,7 +35,7 @@
        "wikibase-linkitem-confirmitem-button": "Dearbhaich",
        "wikibase-linkitem-not-loggedin-title": "Feumaidh tu bhith air do 
logadh a-steach",
        "wikibase-linkitem-not-loggedin": "Feumaidh tu logadh a-steach air an 
uicidh seo 's air a' [$1 phrìomh ionad-tasgaidh] gus am feart seo a 
chleachdadh.",
-       "wikibase-linkitem-success-link": "Tha na duilleagan air an ceangal. 
Geibh thu lorg air an nì sa bheil na ceanglaichean sa [$1 phrìomh 
ionad-tasgaidh] againn.",
+       "wikibase-linkitem-success-link": "Tha na duilleagan air an ceangal. 
Gheibh thu lorg air an nì sa bheil na ceanglaichean sa [$1 phrìomh 
ionad-tasgaidh] againn.",
        "wikibase-property-notfound": "Cha deach am buadh \"$1\" a lorg.",
        "wikibase-rc-hide-wikidata": "$1 {{WBREPONAME}}",
        "wikibase-rc-hide-wikidata-hide": "Falaich",
@@ -48,7 +48,7 @@
        "wikibase-error-invalid-entity-id": "Chan eil an siostam eòlach air an 
ID a chuir thu a-steach. Feuch an cleachd thu ID eintiteis dligheach.",
        "unconnectedpages": "Duilleagan nach eil ceangailte ri nì",
        "wikibase-unconnectedpages-format-row": "($1 
{{PLURAL:$1|cheangal|cheangal|ceanglaichean|ceangal}} eadar-cànain air an 
duilleag)",
-       "wikibase-unconnectedpages-submit": "Siuthad",
+       "wikibase-unconnectedpages-submit": "Seall na duilleagan",
        "wikibase-pageinfo-entity-id": "ID an nì {{WBREPONAME}}",
        "wikibase-pageinfo-entity-id-none": "Chan eil gin",
        "wikibase-property-render-error": "Dh'fhàillig le reandaradh a bhuaidh 
$1: $2",
diff --git a/extensions/Wikibase/docs/entitytypes.wiki 
b/extensions/Wikibase/docs/entitytypes.wiki
index 8cc5727..52da7d4 100644
--- a/extensions/Wikibase/docs/entitytypes.wiki
+++ b/extensions/Wikibase/docs/entitytypes.wiki
@@ -46,9 +46,13 @@
 : a callable that returns a DispatchableDeserializer instance, with the first 
and only argument
   being a DeserializerFactory
 ; entity-id-pattern (repo and client)
-: a regular expression that matches serialized entity ids
+: a regular expression that matches serialized entity IDs
 ; entity-id-builder (repo and client)
-: a callable that returns an EntityId instance for a given entity id 
serialization
+: a callable that returns an EntityId instance for a given entity ID 
serialization
+; entity-id-composer (repo and client)
+: a callable that returns an EntityId instance for the given unique part of an 
entity ID
+  serialization. Only entity types with IDs that are constructed from a static 
and a unique part can
+  and should specify this.
 ; view-factory-callback (repo only)
 : a callable that returns an EntityView instance, with the arguments being a 
language code, a
   LabelDescriptionLookup, a LanguageFallbackChain and an EditSectionGenerator
diff --git a/extensions/Wikibase/lib/includes/EntityIdComposer.php 
b/extensions/Wikibase/lib/includes/EntityIdComposer.php
new file mode 100644
index 0000000..bbaa939
--- /dev/null
+++ b/extensions/Wikibase/lib/includes/EntityIdComposer.php
@@ -0,0 +1,79 @@
+<?php
+
+namespace Wikibase\Lib;
+
+use InvalidArgumentException;
+use UnexpectedValueException;
+use Wikibase\DataModel\Entity\EntityId;
+use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\DataModel\Entity\PropertyId;
+
+/**
+ * Constructs EntityId objects from entity type identifiers and unique parts 
of entity ID
+ * serializations. The unique part is typically the numeric part of an entity 
ID, excluding the
+ * static part that's the same for all IDs of that type. Items and properties 
are always supported
+ * for legacy reasons.
+ *
+ * Meant to be the counterpart for @see Int32EntityId::getNumericId, as well 
as an extensible
+ * replacement for @see LegacyIdInterpreter::newIdFromTypeAndNumber.
+ *
+ * @todo Move to DataModel Services.
+ *
+ * @since 0.5
+ *
+ * @license GPL-2.0+
+ * @author Thiemo Mättig
+ */
+class EntityIdComposer {
+
+       /**
+        * @var callable[]
+        */
+       private $composers;
+
+       /**
+        * @param callable[] $composers Array mapping entity type identifiers 
to callables accepting a
+        *  single mixed value, representing the unique part of an entity ID 
serialization, and
+        *  returning an EntityId object.
+        *
+        * @throws InvalidArgumentException
+        */
+       public function __construct( array $composers ) {
+               foreach ( $composers as $entityType => $composer ) {
+                       if ( !is_string( $entityType ) || $entityType === '' || 
!is_callable( $composer ) ) {
+                               throw new InvalidArgumentException( '$composers 
must map non-empty strings to callables' );
+                       }
+               }
+
+               $this->composers = $composers;
+       }
+
+       /**
+        * @param string $entityType
+        * @param mixed $uniquePart
+        *
+        * @throws InvalidArgumentException when the entity type is not known 
or the unique part is not
+        *  unique.
+        * @throws UnexpectedValueException when the configured composer did 
not return an EntityId
+        *  object.
+        * @return EntityId
+        */
+       public function composeEntityId( $entityType, $uniquePart ) {
+               if ( isset( $this->composers[$entityType] ) ) {
+                       $id = $this->composers[$entityType]( $uniquePart );
+               } elseif ( $entityType === 'item' ) {
+                       return ItemId::newFromNumber( $uniquePart );
+               } elseif ( $entityType === 'property' ) {
+                       return PropertyId::newFromNumber( $uniquePart );
+               } else {
+                       throw new InvalidArgumentException( 'Unknown entity 
type ' . $entityType );
+               }
+
+               if ( !( $id instanceof EntityId ) ) {
+                       throw new UnexpectedValueException( 'Composer for ' . 
$entityType . ' is invalid' );
+               }
+
+               return $id;
+       }
+
+}
diff --git a/extensions/Wikibase/lib/includes/EntityTypeDefinitions.php 
b/extensions/Wikibase/lib/includes/EntityTypeDefinitions.php
index 6c540ea..bc632f7 100644
--- a/extensions/Wikibase/lib/includes/EntityTypeDefinitions.php
+++ b/extensions/Wikibase/lib/includes/EntityTypeDefinitions.php
@@ -16,6 +16,8 @@
  *
  * @licence GNU GPL v2+
  * @author Bene* < [email protected] >
+ * @author Adrian Heine <[email protected]>
+ * @author Thiemo Mättig
  */
 class EntityTypeDefinitions {
 
@@ -31,8 +33,8 @@
         * @throws InvalidArgumentException
         */
        public function __construct( array $entityTypeDefinitions ) {
-               foreach ( $entityTypeDefinitions as $id => $def ) {
-                       if ( !is_string( $id ) || !is_array( $def ) ) {
+               foreach ( $entityTypeDefinitions as $type => $def ) {
+                       if ( !is_string( $type ) || !is_array( $def ) ) {
                                throw new InvalidArgumentException( 
'$entityTypeDefinitions must be a map from string to arrays' );
                        }
                }
@@ -50,14 +52,14 @@
        /**
         * @param string $field
         *
-        * @return mixed
+        * @return array
         */
        private function getMapForDefinitionField( $field ) {
-               $fieldValues = array();
+               $fieldValues = [];
 
-               foreach ( $this->entityTypeDefinitions as $id => $def ) {
+               foreach ( $this->entityTypeDefinitions as $type => $def ) {
                        if ( isset( $def[$field] ) ) {
-                               $fieldValues[$id] = $def[$field];
+                               $fieldValues[$type] = $def[$field];
                        }
                }
 
@@ -142,4 +144,13 @@
                return $result;
        }
 
+       /**
+        * @return callable[] An array mapping entity type identifiers to 
callables capable of turning
+        *  unique parts of entity ID serializations into EntityId objects. Not 
guaranteed to contain
+        *  all entity types.
+        */
+       public function getEntityIdComposers() {
+               return $this->getMapForDefinitionField( 'entity-id-composer' );
+       }
+
 }
diff --git a/extensions/Wikibase/lib/tests/phpunit/EntityIdComposerTest.php 
b/extensions/Wikibase/lib/tests/phpunit/EntityIdComposerTest.php
new file mode 100644
index 0000000..90f8d4c
--- /dev/null
+++ b/extensions/Wikibase/lib/tests/phpunit/EntityIdComposerTest.php
@@ -0,0 +1,101 @@
+<?php
+
+namespace Wikibase\Lib\Tests;
+
+use InvalidArgumentException;
+use PHPUnit_Framework_TestCase;
+use UnexpectedValueException;
+use Wikibase\DataModel\Entity\EntityId;
+use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\DataModel\Entity\PropertyId;
+use Wikibase\Lib\EntityIdComposer;
+
+/**
+ * @covers Wikibase\Lib\EntityIdComposer
+ *
+ * @licence GNU GPL v2+
+ * @author Thiemo Mättig
+ */
+class EntityIdComposerTest extends PHPUnit_Framework_TestCase {
+
+       private function getComposer() {
+               return new EntityIdComposer( [
+                       'numeric-item' => function( $uniquePart ) {
+                               return new ItemId( 'Q' . $uniquePart );
+                       },
+                       'custom-item' => function( $uniquePart ) {
+                               return new ItemId( 'Q100' . $uniquePart );
+                       },
+               ] );
+       }
+
+       public function invalidConstructorArgumentProvider() {
+               $callable = function( $uniquePart ) {
+               };
+
+               return [
+                       [ [ 0 => $callable ] ],
+                       [ [ '' => $callable ] ],
+                       [ [ 'string' => null ] ],
+                       [ [ 'string' => 'not a callable' ] ],
+               ];
+       }
+
+       /**
+        * @dataProvider invalidConstructorArgumentProvider
+        */
+       public function testGivenInvalidComposer_constructorFails( $composers ) 
{
+               $this->setExpectedException( InvalidArgumentException::class );
+               new EntityIdComposer( $composers );
+       }
+
+       public function testGivenInvalidCallback_buildFails() {
+               $composer = new EntityIdComposer( [
+                       'item' => function( $uniquePart ) {
+                               return null;
+                       },
+               ] );
+               $this->setExpectedException( UnexpectedValueException::class );
+               $composer->composeEntityId( 'item', 1 );
+       }
+
+       public function validUniquePartProvider() {
+               return [
+                       'Items are always supported' => [ 'item', 1, new 
ItemId( 'Q1' ) ],
+                       'Properties are always supported' => [ 'property', 2, 
new PropertyId( 'P2' ) ],
+
+                       'int' => [ 'numeric-item', 3, new ItemId( 'Q3' ) ],
+                       'float' => [ 'numeric-item', 4.0, new ItemId( 'Q4' ) ],
+                       'string' => [ 'numeric-item', '5', new ItemId( 'Q5' ) ],
+
+                       'custom' => [ 'custom-item', 6, new ItemId( 'Q1006' ) ],
+               ];
+       }
+
+       /**
+        * @dataProvider validUniquePartProvider
+        */
+       public function testGivenValidFragment_buildSucceeds( $entityType, 
$uniquePart, EntityId $expected ) {
+               $id = $this->getComposer()->composeEntityId( $entityType, 
$uniquePart );
+               $this->assertEquals( $expected, $id );
+       }
+
+       public function invalidUniquePartProvider() {
+               return [
+                       [ null, 1 ],
+                       [ 'unknown', 2 ],
+                       [ 'item', null ],
+                       [ 'item', new ItemId( 'Q4' ) ],
+               ];
+       }
+
+       /**
+        * @dataProvider invalidUniquePartProvider
+        */
+       public function testGivenInvalidFragment_buildFails( $entityType, 
$uniquePart ) {
+               $composer = $this->getComposer();
+               $this->setExpectedException( InvalidArgumentException::class );
+               $composer->composeEntityId( $entityType, $uniquePart );
+       }
+
+}
diff --git 
a/extensions/Wikibase/lib/tests/phpunit/EntityTypeDefinitionsTest.php 
b/extensions/Wikibase/lib/tests/phpunit/EntityTypeDefinitionsTest.php
index e6c18ce..09927fe 100644
--- a/extensions/Wikibase/lib/tests/phpunit/EntityTypeDefinitionsTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/EntityTypeDefinitionsTest.php
@@ -10,6 +10,7 @@
  *
  * @licence GNU GPL v2+
  * @author Bene* < [email protected] >
+ * @author Thiemo Mättig
  */
 class EntityTypeDefinitionsTest extends PHPUnit_Framework_TestCase {
 
@@ -22,6 +23,12 @@
                                'content-model-id' => 'foo-model',
                                'content-handler-factory-callback' => 
'foo-handler',
                                'entity-factory-callback' => 'new-foo',
+                               'entity-differ-strategy-builder' => 
'foo-differ',
+                               'entity-patcher-strategy-builder' => 
'foo-patcher',
+                               'js-deserializer-factory-function' => 
'foo-js-deserializer',
+                               'entity-id-pattern' => 'foo-id-pattern',
+                               'entity-id-builder' => 'new-foo-id',
+                               'entity-id-composer' => 'new-composed-foo-id',
                        ),
                        'bar' => array(
                                'serializer-factory-callback' => 
'bar-serializer',
@@ -107,4 +114,44 @@
                );
        }
 
+       public function testGetEntityDifferStrategyBuilders() {
+               $definitions = new EntityTypeDefinitions( 
$this->getDefinitions() );
+
+               $this->assertSame( [
+                       'foo' => 'foo-differ',
+               ], $definitions->getEntityDifferStrategyBuilders() );
+       }
+
+       public function testGetEntityPatcherStrategyBuilders() {
+               $definitions = new EntityTypeDefinitions( 
$this->getDefinitions() );
+
+               $this->assertSame( [
+                       'foo' => 'foo-patcher',
+               ], $definitions->getEntityPatcherStrategyBuilders() );
+       }
+
+       public function testGetJsDeserializerFactoryFunctions() {
+               $definitions = new EntityTypeDefinitions( 
$this->getDefinitions() );
+
+               $this->assertSame( [
+                       'foo' => 'foo-js-deserializer',
+               ], $definitions->getJsDeserializerFactoryFunctions() );
+       }
+
+       public function testGetEntityIdBuilders() {
+               $definitions = new EntityTypeDefinitions( 
$this->getDefinitions() );
+
+               $this->assertSame( [
+                       'foo-id-pattern' => 'new-foo-id',
+               ], $definitions->getEntityIdBuilders() );
+       }
+
+       public function testGetEntityIdFragmentBuilders() {
+               $definitions = new EntityTypeDefinitions( 
$this->getDefinitions() );
+
+               $this->assertSame( [
+                       'foo' => 'new-composed-foo-id',
+               ], $definitions->getEntityIdComposers() );
+       }
+
 }
diff --git a/extensions/Wikibase/repo/i18n/gl.json 
b/extensions/Wikibase/repo/i18n/gl.json
index 69acd81..d44ff28 100644
--- a/extensions/Wikibase/repo/i18n/gl.json
+++ b/extensions/Wikibase/repo/i18n/gl.json
@@ -554,18 +554,18 @@
        "apihelp-wbsetreference-example-2": "Asignar a referencia para a 
afirmación con GUID Q76$D4FDE516-F20C-4154-ADCE-7C5B609DFDFF que ten función 
hash 1eb8793c002b1d9820c833d234a1b54c8e94187e",
        "apihelp-wbsetreference-example-3": "Crea unha nova referencia para a 
afirmación con GUID Q76$D4FDE516-F20C-4154-ADCE-7C5B609DFDFF e inserta a nova 
referencia ó comezo da lista de referencias no canto de engadila ó final.",
        "apihelp-wbsetsitelink-description": "Asocia un artigo dunha wiki cun 
elemento de Wikibase ou elimina unha asociación xa feita.",
-       "apihelp-wbsetsitelink-param-id": "Identificador da entidade, incluíndo 
o prefixo. \nUse 'id' ou 'site' e 'title' xuntos.",
-       "apihelp-wbsetsitelink-param-site": "Un identificador para o sitio no 
que reside a páxina.\nÚseo xunto con 'title' para crear unha ligazón completa ó 
sitio.",
-       "apihelp-wbsetsitelink-param-title": "Título da páxina a asociar.\nÚseo 
xunto con 'site' para crear unha ligazón completa ó sitio.",
+       "apihelp-wbsetsitelink-param-id": "Identificador da entidade, incluíndo 
o prefixo. \nUse <var>id</var> ou <var>site</var> e <var>title</var> xuntos.",
+       "apihelp-wbsetsitelink-param-site": "Un identificador para o sitio no 
que reside a páxina.\nÚseo xunto con <var>title</var> para crear unha ligazón 
completa ó sitio.",
+       "apihelp-wbsetsitelink-param-title": "Título da páxina a asociar.\nÚseo 
xunto con <var>site</var> para crear unha ligazón completa ó sitio.",
        "apihelp-wbsetsitelink-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-wbsetsitelink-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-wbsetsitelink-param-bot": "Marcar esta edición como bot. Esta 
etiqueta de URL só será respectada se o usuario pertence ó grupo \"bot\".",
        "apihelp-wbsetsitelink-param-linksite": "Identificador do sitio no que 
reside o artigo a ligar",
        "apihelp-wbsetsitelink-param-linktitle": "Título do artigo a ligar. Se 
este parámetro é unha cadea de texto en branco ou linktitle e distintivo non 
teñen valor, a ligazón eliminarase.",
        "apihelp-wbsetsitelink-param-badges": "Identificadores dos elementos a 
asignar como distintivos. Reemprazarán ós actuais. Se este parámetro non se 
indica, os distintivos non serán cambiados",
-       "apihelp-wbsetsitelink-example-1": "Engade unha ligazón a sitio 
\"Hydrogen\" para a páxina en inglés con identificador \"Q42\", se a ligazón ó 
sitio non existe",
-       "apihelp-wbsetsitelink-example-2": "Engade unha ligazón a sitio 
\"Hydrogen\" para a páxina en inglés con identificador \"Q42\", se a ligazón ó 
sitio non existe, cun resumo de edición \"World domination will be mine 
soon!\"",
-       "apihelp-wbsetsitelink-example-3": "Engade unha ligazón de sitio 
\"Wasserstoff\" para a páxina en alemán no elemento coa ligazón á páxina en 
inglés a Hydrogen\", se a ligazón ó sitio non existe",
+       "apihelp-wbsetsitelink-example-1": "Engade unha ligazón a sitio ó 
artigo en inglés de \"Hydrogen\" con identificador \"Q42\", se a ligazón ó 
sitio non existe",
+       "apihelp-wbsetsitelink-example-2": "Engade unha ligazón a sitio ó 
artigo en inglés \"Hydrogen\"  con identificador \"Q42\", se a ligazón ó sitio 
non existe. Tamén engade \"Loves Oxygen\" ó resumo de edición.",
+       "apihelp-wbsetsitelink-example-3": "Engade unha ligazón de sitio ó 
artigo en alemán \"Wasserstoff\" no elemento que é ligado co artigo en inglés 
\"Hydrogen\", se a ligazón ó sitio non existe",
        "apihelp-wbsetsitelink-example-4": "Elimina a ligazón ó sitio en alemán 
do elemento",
        "apihelp-wbsetsitelink-example-5": "Engade a ligazón a sitio \"Wodór\" 
para a páxina en polaco no elemento con ligazón á páxina en inglés a 
\"Hydrogen\" cun distintivo apuntando ó elemento con identificador \"Q149\"",
        "apihelp-wbsetsitelink-example-6": "Cambia os distintivos para a 
ligazón á páxina en polaco do elemento con identificador \"Q42\" a dous 
distintivos apuntado ós elmentos con identificadores \"Q2\" e \"Q149\" sen 
proporcionar a ligazón ó título",
diff --git a/extensions/Wikibase/repo/i18n/id.json 
b/extensions/Wikibase/repo/i18n/id.json
index 30d92f3..647f958 100644
--- a/extensions/Wikibase/repo/i18n/id.json
+++ b/extensions/Wikibase/repo/i18n/id.json
@@ -42,7 +42,7 @@
        "wikibase-label-edit-placeholder-language-aware": "masukkan label di 
$1",
        "wikibase-description-empty": "Tidak ada pemerian",
        "wikibase-description-edit-placeholder": "masukkan pemerian",
-       "wikibase-description-edit-placeholder-language-aware": "masukkan 
pemerian di $1",
+       "wikibase-description-edit-placeholder-language-aware": "masukkan 
pemerian dalam bahasa $1",
        "wikibase-aliases-edit-placeholder": "masukkan nama lain",
        "wikibase-aliases-edit-placeholder-language-aware": "memasukkan 
beberapa nama lain di $1",
        "wikibase-diffview-reference": "rujukan",
@@ -292,6 +292,7 @@
        "wikibase-conflict-patched": "Suntingan Anda telah ditambahkan ke dalam 
versi terkini.",
        "wikibase-restoreold": "kembalikan",
        "wikibase-entity-summary-restore": "Mengembalikan perubahan $3 oleh 
[[Special:Contributions/$4|{{GENDER:$4|$4}}]]",
+       "wikibase-entity-summary-undo": "Kembalikan perubahan $3 oleh 
[[Special:Contributions/$4|{{GENDER:$4|$4}}]] ([[User talk:$4|pembicaraan]])",
        "wikibase-no-direct-editing": "Penyuntingan langsung dinonaktifkan di 
ruang nama $1",
        "wikibase-noentity": "Entitas ini tidak ada. Anda dapat 
[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mencari log terkait] untuk 
mengetahui status entitas saat ini.",
        "wikibase-noentity-createone": "Anda juga dapat [[$1|membuat yang 
baru]].",
@@ -526,7 +527,7 @@
        "apihelp-wbsetdescription-example-2": "Atur untai (''string'') \"An 
encyclopedia that everyone can edit\"  sebagai sebuah pemerian dalam bahasa 
Inggris untuk laman dengan pranala interwiki ke enwiki:Wikipedia",
        "apihelp-wbsetlabel-description": "Atur sebuah label untuk satu entitas 
tunggal Wikibase.",
        "apihelp-wbsetlabel-param-id": "Penanda untuk entitas ini, termasuk 
awalan.\nGunakan salah satu antara 'id' atau 'site' dan bersama dengan 
'title'.",
-       "apihelp-wbsetlabel-param-site": "Sebuah penanda untuk situs ini 
terletak pada laman yang ada. Gunakan bersama dengan 'title' untuk membuat 
pranala interwiki yang lengkap.",
+       "apihelp-wbsetlabel-param-site": "Sebuah penanda untuk situs ini 
terletak pada laman yang ada. Gunakan bersama dengan <var>title</var> untuk 
membuat pranala interwiki yang lengkap.",
        "apihelp-wbsetlabel-param-title": "Judul laman untuk 
dikaitkan.\nGunakan bersama dengan 'site' untuk membuat pranala interwiki yang 
lengkap.",
        "apihelp-wbsetlabel-param-baserevid": "Penanda angka untuk perbaikan 
berdasarkan perubahan yang terjadi.\nIni digunakan untuk melacak konflik yang 
terjadi saat penyimpanan.",
        "apihelp-wbsetlabel-param-summary": "Ringkasan untuk 
penyuntingan.\nAkan dilampirkan dengan komentar yang dihasilkan secara 
otomatis. Batas panjang dari komentar otomatis dengan ringkasannya adalah 260 
huruf. Perhatikan bahwa pemotongan akan dilakukan jika sudah melebihi batas.",
diff --git a/extensions/Wikibase/repo/i18n/map-bms.json 
b/extensions/Wikibase/repo/i18n/map-bms.json
new file mode 100644
index 0000000..168f5d6
--- /dev/null
+++ b/extensions/Wikibase/repo/i18n/map-bms.json
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Mbrt"
+               ]
+       },
+       "wikibase-edit": "nyunting"
+}
diff --git a/extensions/Wikibase/repo/includes/Specials/SpecialNewEntity.php 
b/extensions/Wikibase/repo/includes/Specials/SpecialNewEntity.php
index ab33917..00b8775 100644
--- a/extensions/Wikibase/repo/includes/Specials/SpecialNewEntity.php
+++ b/extensions/Wikibase/repo/includes/Specials/SpecialNewEntity.php
@@ -5,7 +5,6 @@
 use Html;
 use HTMLForm;
 use InvalidArgumentException;
-use Language;
 use Status;
 use Wikibase\CopyrightMessageBuilder;
 use Wikibase\DataModel\Entity\EntityDocument;
@@ -23,12 +22,13 @@
  * @author Jens Ohlig
  * @author John Erling Blad < [email protected] >
  * @author Bene* < [email protected] >
+ * @author Adrian Heine <[email protected]>
  */
 abstract class SpecialNewEntity extends SpecialWikibaseRepoPage {
 
        /**
         * Contains pieces of the sub-page name of this special page if a 
subpage was called.
-        * E.g. array( 'a', 'b' ) in case of 'Special:NewEntity/a/b'
+        * E.g. [ 'a', 'b' ] in case of 'Special:NewEntity/a/b'
         * @var string[]|null
         */
        protected $parts = null;
@@ -44,9 +44,14 @@
        private $description;
 
        /**
-        * @var Language|null
+        * @var string[]
         */
-       private $contentLanguage;
+       private $aliases = [];
+
+       /**
+        * @var string
+        */
+       private $contentLanguageCode;
 
        /**
         * @var string[]
@@ -54,19 +59,19 @@
        private $languageCodes;
 
        /**
-        * @var string
+        * @var SpecialPageCopyrightView
         */
-       private $rightsUrl;
+       private $copyrightView;
 
        /**
-        * @var string
+        * @var LanguageDirectionalityLookup
         */
-       private $rightsText;
+       private $languageDirectionalityLookup;
 
        /**
-        * @var string[]
+        * @var LanguageNameLookup
         */
-       private $aliases = array();
+       private $languageNameLookup;
 
        /**
         * @param string $name Name of the special page, as seen in links and 
URLs.
@@ -76,16 +81,17 @@
         */
        public function __construct( $name, $restriction = 'createpage' ) {
                parent::__construct( $name, $restriction );
-
                $wikibaseRepo = WikibaseRepo::getDefaultInstance();
-               // TODO: find a way to inject these
-               $this->summaryFormatter = $wikibaseRepo->getSummaryFormatter();
-               $this->languageCodes = 
$wikibaseRepo->getTermsLanguages()->getLanguages();
 
                $settings = $wikibaseRepo->getSettings();
-
-               $this->rightsUrl = $settings->getSetting( 'dataRightsUrl' );
-               $this->rightsText = $settings->getSetting( 'dataRightsText' );
+               $this->copyrightView = new SpecialPageCopyrightView(
+                       new CopyrightMessageBuilder(),
+                       $settings->getSetting( 'dataRightsUrl' ),
+                       $settings->getSetting( 'dataRightsText' )
+               );
+               $this->languageCodes = 
$wikibaseRepo->getTermsLanguages()->getLanguages();
+               $this->languageDirectionalityLookup = 
$wikibaseRepo->getLanguageDirectionalityLookup();
+               $this->languageNameLookup = 
$wikibaseRepo->getLanguageNameLookup();
        }
 
        public function doesWrites() {
@@ -106,7 +112,7 @@
                $this->checkBlocked();
                $this->checkReadOnly();
 
-               $this->parts = ( $subPage === '' ? array() : explode( '/', 
$subPage ) );
+               $this->parts = ( $subPage === '' ? [] : explode( '/', $subPage 
) );
                $this->prepareArguments();
 
                $out = $this->getOutput();
@@ -152,10 +158,10 @@
                        }
                }
 
-               $this->getOutput()->addModuleStyles( array( 'wikibase.special' 
) );
+               $this->getOutput()->addModuleStyles( [ 'wikibase.special' ] );
 
                foreach ( $this->getWarnings() as $warning ) {
-                       $out->addHTML( Html::element( 'div', array( 'class' => 
'warning' ), $warning ) );
+                       $out->addHTML( Html::element( 'div', [ 'class' => 
'warning' ], $warning ) );
                }
 
                $this->createForm( $this->getLegend(), 
$this->additionalFormElements() );
@@ -182,7 +188,7 @@
                $this->description = $this->stringNormalizer->trimToNFC( 
$description );
 
                $aliases = $this->getRequest()->getVal( 'aliases' );
-               $explodedAliases = $aliases === null ? array() : explode( '|', 
$aliases );
+               $explodedAliases = $aliases === null ? [] : explode( '|', 
$aliases );
                foreach ( $explodedAliases as $alias ) {
                        $alias = $this->stringNormalizer->trimToNFC( $alias );
 
@@ -191,10 +197,7 @@
                        }
                }
 
-               $this->contentLanguage = Language::factory( 
$this->getRequest()->getVal(
-                       'lang',
-                       $this->getLanguage()->getCode()
-               ) );
+               $this->contentLanguageCode = $this->getRequest()->getVal( 
'lang', $this->getLanguage()->getCode() );
        }
 
        /**
@@ -207,7 +210,7 @@
        protected function hasSufficientArguments() {
                return $this->label !== ''
                        || $this->description !== ''
-                       || $this->aliases !== array();
+                       || $this->aliases !== [];
        }
 
        /**
@@ -233,7 +236,7 @@
                }
 
                $fingerprint = $entity->getFingerprint();
-               $languageCode = $this->contentLanguage->getCode();
+               $languageCode = $this->contentLanguageCode;
 
                $fingerprint->setLabel( $languageCode, $this->label );
                $fingerprint->setDescription( $languageCode, $this->description 
);
@@ -245,13 +248,13 @@
        /**
         * Get options for language selector
         *
-        * @return array
+        * @return string[]
         */
        private function getLanguageOptions() {
-               $names = Language::fetchLanguageNames( null, 'all' );
-               $languageOptions = array();
+               $languageOptions = [];
                foreach ( $this->languageCodes as $code ) {
-                       $languageOptions[isset( $names[$code] ) ? $names[$code] 
: $code] = $code;
+                       $languageName = $this->languageNameLookup->getName( 
$code );
+                       $languageOptions["$languageName ($code)"] = $code;
                }
                return $languageOptions;
        }
@@ -262,18 +265,18 @@
        protected function additionalFormElements() {
                $this->getOutput()->addModules( 
'wikibase.special.languageLabelDescriptionAliases' );
 
-               $langCode = $this->contentLanguage->getCode();
-               $langDir = $this->contentLanguage->getDir();
-               return array(
-                       'lang' => array(
+               $langCode = $this->contentLanguageCode;
+               $langDir = 
$this->languageDirectionalityLookup->getDirectionality( 
$this->contentLanguageCode );
+               return [
+                       'lang' => [
                                'name' => 'lang',
                                'options' => $this->getLanguageOptions(),
                                'default' => $langCode,
-                               'type' => 'select',
+                               'type' => 'combobox',
                                'id' => 'wb-newentity-language',
                                'label-message' => 'wikibase-newentity-language'
-                       ),
-                       'label' => array(
+                       ],
+                       'label' => [
                                'name' => 'label',
                                'default' => $this->label ?: '',
                                'type' => 'text',
@@ -284,8 +287,8 @@
                                        'wikibase-label-edit-placeholder'
                                )->text(),
                                'label-message' => 'wikibase-newentity-label'
-                       ),
-                       'description' => array(
+                       ],
+                       'description' => [
                                'name' => 'description',
                                'default' => $this->description ?: '',
                                'type' => 'text',
@@ -296,8 +299,8 @@
                                        'wikibase-description-edit-placeholder'
                                )->text(),
                                'label-message' => 
'wikibase-newentity-description'
-                       ),
-                       'aliases' => array(
+                       ],
+                       'aliases' => [
                                'name' => 'aliases',
                                'default' => $this->aliases ? implode( '|', 
$this->aliases ) : '',
                                'type' => 'text',
@@ -308,8 +311,8 @@
                                        'wikibase-aliases-edit-placeholder'
                                )->text(),
                                'label-message' => 'wikibase-newentity-aliases'
-                       )
-               );
+                       ]
+               ];
        }
 
        /**
@@ -318,7 +321,7 @@
         * @param string|null $legend initial value for the label input box
         * @param array[] $additionalFormElements initial value for the 
description input box
         */
-       private function createForm( $legend = null, array 
$additionalFormElements = array() ) {
+       private function createForm( $legend = null, array 
$additionalFormElements ) {
                $this->addCopyrightText();
 
                HTMLForm::factory( 'ooui', $additionalFormElements, 
$this->getContext() )
@@ -335,13 +338,7 @@
         * @todo could factor this out into a special page form builder and 
renderer
         */
        private function addCopyrightText() {
-               $copyrightView = new SpecialPageCopyrightView(
-                       new CopyrightMessageBuilder(),
-                       $this->rightsUrl,
-                       $this->rightsText
-               );
-
-               $html = $copyrightView->getHtml( $this->getLanguage(), 
'wikibase-newentity-submit' );
+               $html = $this->copyrightView->getHtml( $this->getLanguage(), 
'wikibase-newentity-submit' );
 
                $this->getOutput()->addHTML( $html );
        }
diff --git a/extensions/Wikibase/repo/includes/WikibaseRepo.php 
b/extensions/Wikibase/repo/includes/WikibaseRepo.php
index b57164f..f11f5f4 100644
--- a/extensions/Wikibase/repo/includes/WikibaseRepo.php
+++ b/extensions/Wikibase/repo/includes/WikibaseRepo.php
@@ -385,15 +385,21 @@
         * @return WikibaseValueFormatterBuilders
         */
        private function newWikibaseValueFormatterBuilders() {
-               global $wgLang;
-
                return new WikibaseValueFormatterBuilders(
                        $this->getDefaultLanguage(),
                        new FormatterLabelDescriptionLookupFactory( 
$this->getTermLookup() ),
-                       new LanguageNameLookup( $wgLang->getCode() ),
+                       $this->getLanguageNameLookup(),
                        $this->getLocalEntityUriParser(),
                        $this->getEntityTitleLookup()
                );
+       }
+
+       /**
+        * @return LanguageNameLookup
+        */
+       public function getLanguageNameLookup() {
+               global $wgLang;
+               return new LanguageNameLookup( $wgLang->getCode() );
        }
 
        /**
@@ -1555,11 +1561,9 @@
         * @return EntityIdHtmlLinkFormatterFactory
         */
        public function getEntityIdHtmlLinkFormatterFactory() {
-               global $wgLang;
-
                return new EntityIdHtmlLinkFormatterFactory(
                        $this->getEntityTitleLookup(),
-                       new LanguageNameLookup( $wgLang->getCode() )
+                       $this->getLanguageNameLookup()
                );
        }
 
@@ -1613,8 +1617,8 @@
                        $this->getSiteStore(),
                        $this->getDataTypeFactory(),
                        TemplateFactory::getDefaultInstance(),
-                       new LanguageNameLookup( $wgLang->getCode() ),
-                       new MediaWikiLanguageDirectionalityLookup(),
+                       $this->getLanguageNameLookup(),
+                       $this->getLanguageDirectionalityLookup(),
                        new MediaWikiNumberLocalizer( $wgLang ),
                        $this->settings->getSetting( 'siteLinkGroups' ),
                        $this->settings->getSetting( 'specialSiteLinkGroups' ),
@@ -1624,6 +1628,13 @@
        }
 
        /**
+        * @return LanguageDirectionalityLookup
+        */
+       public function getLanguageDirectionalityLookup() {
+               return new MediaWikiLanguageDirectionalityLookup();
+       }
+
+       /**
         * @return DataTypeValidatorFactory
         */
        public function getDataTypeValidatorFactory() {
diff --git a/extensions/Wikibase/view/resources/jquery/ui/jquery.ui.tagadata.js 
b/extensions/Wikibase/view/resources/jquery/ui/jquery.ui.tagadata.js
index 033dd6b..6879ba4 100644
--- a/extensions/Wikibase/view/resources/jquery/ui/jquery.ui.tagadata.js
+++ b/extensions/Wikibase/view/resources/jquery/ui/jquery.ui.tagadata.js
@@ -310,8 +310,12 @@
                var $label = $( '<span/>' ).addClass( 'tagadata-label' ),
                        $input = $( '<input />' )
                                .attr( 'name', this.options.itemName + '[]' )
-                               .prop( 'lang', this.element.prop( 'lang' ) || 
'' )
-                               .prop( 'dir', this.element.prop( 'dir' ) || 
'auto' );
+                               .prop( 'lang', this.element.prop( 'lang' ) || 
'' );
+                       try {
+                               $input.prop( 'dir', this.element.prop( 'dir' ) 
|| 'auto' );
+                       } catch ( e ) {
+                               // IE does not support dir=auto
+                       }
 
                $tag = this._createTagNode().addClass( additionalClasses || '' 
).append( $label );
 
diff --git a/extensions/Wikibase/view/src/EntityView.php 
b/extensions/Wikibase/view/src/EntityView.php
index 732ecc9..ea515e4 100644
--- a/extensions/Wikibase/view/src/EntityView.php
+++ b/extensions/Wikibase/view/src/EntityView.php
@@ -132,7 +132,7 @@
         *
         * @return string HTML
         */
-       protected function getHtmlForFingerprint( EntityDocument $entity ) {
+       protected function getHtmlForTerms( EntityDocument $entity ) {
                $id = $entity->getId();
 
                if ( $entity instanceof LabelsProvider && $entity instanceof 
DescriptionsProvider ) {
diff --git a/extensions/Wikibase/view/src/ItemView.php 
b/extensions/Wikibase/view/src/ItemView.php
index f348e9b..ba80849 100644
--- a/extensions/Wikibase/view/src/ItemView.php
+++ b/extensions/Wikibase/view/src/ItemView.php
@@ -5,6 +5,7 @@
 use InvalidArgumentException;
 use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\DataModel\Entity\Item;
+use Wikibase\DataModel\Statement\StatementListProvider;
 use Wikibase\View\Template\TemplateFactory;
 
 /**
@@ -78,11 +79,11 @@
         * @return string HTML
         */
        protected function getMainHtml( EntityDocument $item ) {
-               if ( !( $item instanceof Item ) ) {
-                       throw new InvalidArgumentException( '$item must contain 
an Item.' );
+               if ( !( $item instanceof StatementListProvider ) ) {
+                       throw new InvalidArgumentException( '$item must be a 
StatementListProvider' );
                }
 
-               $html = $this->getHtmlForFingerprint( $item )
+               $html = $this->getHtmlForTerms( $item )
                        . $this->templateFactory->render( 'wikibase-toc' )
                        . $this->statementSectionsView->getHtml( 
$item->getStatements() );
 
@@ -94,12 +95,16 @@
         *
         * @param EntityDocument $entity
         *
+        * @throws InvalidArgumentException
         * @return string HTML
         */
        protected function getSideHtml( EntityDocument $entity ) {
-               return $this->getHtmlForPageImage()
-                               .$this->getHtmlForSiteLinks( $entity );
+               if ( !( $entity instanceof Item ) ) {
+                       throw new InvalidArgumentException( '$item must be an 
Item' );
+               }
 
+               return $this->getHtmlForPageImage()
+                       . $this->getHtmlForSiteLinks( $entity );
        }
 
        /**
@@ -111,7 +116,7 @@
         *
         * @return string HTML
         */
-       protected function getHtmlForSiteLinks( Item $item ) {
+       private function getHtmlForSiteLinks( Item $item ) {
                return $this->siteLinksView->getHtml(
                        $item->getSiteLinkList()->toArray(),
                        $item->getId(),
@@ -124,7 +129,7 @@
         *
         * @return string
         */
-       protected function getHtmlForPageImage() {
+       private function getHtmlForPageImage() {
                $helpText = $this->textProvider->get( 
'wikibase-pageimage-helptext' );
                return $this->templateFactory->render(
                        'wikibase-pageimage',
diff --git a/extensions/Wikibase/view/src/PropertyView.php 
b/extensions/Wikibase/view/src/PropertyView.php
index f36a917..3802453 100644
--- a/extensions/Wikibase/view/src/PropertyView.php
+++ b/extensions/Wikibase/view/src/PropertyView.php
@@ -76,7 +76,7 @@
                        throw new InvalidArgumentException( '$property must 
contain a Property.' );
                }
 
-               $html = $this->getHtmlForFingerprint( $property )
+               $html = $this->getHtmlForTerms( $property )
                        . $this->templateFactory->render( 'wikibase-toc' )
                        . $this->getHtmlForDataType( $property->getDataTypeId() 
)
                        . $this->statementSectionsView->getHtml( 
$property->getStatements() );
diff --git a/extensions/Wikibase/view/src/SimpleEntityTermsView.php 
b/extensions/Wikibase/view/src/SimpleEntityTermsView.php
index eed0969..efc8a0b 100644
--- a/extensions/Wikibase/view/src/SimpleEntityTermsView.php
+++ b/extensions/Wikibase/view/src/SimpleEntityTermsView.php
@@ -185,16 +185,11 @@
        }
 
        /**
-        * @param string $mainLanguageCode Desired language of the label, 
description and aliases in the
-        *  title and header section. Not necessarily identical to the 
interface language.
-        * @param LabelsProvider $labelsProvider
         * @param EntityId|null $entityId
         *
         * @return string HTML
         */
-       public function getTitleHtml(
-               EntityId $entityId = null
-       ) {
+       public function getTitleHtml( EntityId $entityId = null ) {
                $isEmpty = true;
                $idInParenthesesHtml = '';
 
@@ -222,7 +217,7 @@
        }
 
        /**
-        * @param EntityId|null $entityId
+        * @param Term|null $description
         *
         * @return string HTML
         */
diff --git a/vendor/composer/autoload_classmap.php 
b/vendor/composer/autoload_classmap.php
index ed4e874..81fd5a9 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -761,6 +761,7 @@
     'Wikibase\\Lib\\DifferenceContentLanguages' => $baseDir . 
'/extensions/Wikibase/lib/includes/DifferenceContentLanguages.php',
     'Wikibase\\Lib\\DispatchingSnakFormatter' => $baseDir . 
'/extensions/Wikibase/lib/includes/Formatters/DispatchingSnakFormatter.php',
     'Wikibase\\Lib\\DispatchingValueFormatter' => $baseDir . 
'/extensions/Wikibase/lib/includes/Formatters/DispatchingValueFormatter.php',
+    'Wikibase\\Lib\\EntityIdComposer' => $baseDir . 
'/extensions/Wikibase/lib/includes/EntityIdComposer.php',
     'Wikibase\\Lib\\EntityIdHtmlLinkFormatter' => $baseDir . 
'/extensions/Wikibase/lib/includes/Formatters/EntityIdHtmlLinkFormatter.php',
     'Wikibase\\Lib\\EntityIdLinkFormatter' => $baseDir . 
'/extensions/Wikibase/lib/includes/Formatters/EntityIdLinkFormatter.php',
     'Wikibase\\Lib\\EntityIdPlainLinkFormatter' => $baseDir . 
'/extensions/Wikibase/lib/includes/Formatters/EntityIdPlainLinkFormatter.php',
@@ -852,6 +853,7 @@
     'Wikibase\\Lib\\Tests\\Changes\\ItemChangeTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/Changes/ItemChangeTest.php',
     'Wikibase\\Lib\\Tests\\Changes\\TestChanges' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/Changes/TestChanges.php',
     'Wikibase\\Lib\\Tests\\DataTypeDefinitionsTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/DataTypeDefinitionsTest.php',
+    'Wikibase\\Lib\\Tests\\EntityIdComposerTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/EntityIdComposerTest.php',
     'Wikibase\\Lib\\Tests\\EntityRevisionLookupTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/EntityRevisionLookupTest.php',
     'Wikibase\\Lib\\Tests\\EntityTypeDefinitionsTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/EntityTypeDefinitionsTest.php',
     'Wikibase\\Lib\\Tests\\EntityTypesTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/EntityTypesTest.php',
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 7637f5d..e1cec92 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1345,12 +1345,12 @@
         "source": {
             "type": "git",
             "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-            "reference": "8307e06a9ab386302085184571dcad270ef4a77d"
+            "reference": "353b78ab83cf8caab31386e3d0db035c5f403e5a"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/8307e06a9ab386302085184571dcad270ef4a77d";,
-            "reference": "8307e06a9ab386302085184571dcad270ef4a77d",
+            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/353b78ab83cf8caab31386e3d0db035c5f403e5a";,
+            "reference": "353b78ab83cf8caab31386e3d0db035c5f403e5a",
             "shasum": ""
         },
         "require": {
@@ -1383,7 +1383,7 @@
             "jakub-onderka/php-parallel-lint": "0.9.2",
             "mediawiki/mediawiki-codesniffer": "0.4.0|0.5.0"
         },
-        "time": "2016-05-31 09:34:42",
+        "time": "2016-06-02 09:38:29",
         "type": "mediawiki-extension",
         "installation-source": "dist",
         "autoload": {
@@ -1640,7 +1640,7 @@
         "source": {
             "type": "git",
             "url": 
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseMediaInfo";,
-            "reference": "8111551b13188e898811f2af51637997a2a08f64"
+            "reference": "e84d40545842733639864ed93ffcb084b2af98ad"
         },
         "require": {
             "php": ">=5.5.0",
@@ -1654,7 +1654,7 @@
             "mediawiki/mediawiki-codesniffer": "0.6.0",
             "phpunit/phpunit": "~4.8"
         },
-        "time": "2016-05-31 07:02:52",
+        "time": "2016-06-01 14:17:29",
         "type": "mediawiki-extension",
         "installation-source": "source",
         "autoload": {

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5277264637555de07c9a3312e5ea18f9584f29b8
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: master
Gerrit-Owner: WikidataBuilder <[email protected]>

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

Reply via email to