WikidataBuilder has uploaded a new change for review.

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

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

New Wikidata Build - 2016-01-13T10:00:01+0000

Change-Id: Ia83ce5a9811f241ec1f672518851ffa3a4a71f38
---
M composer.lock
A extensions/ExternalValidation/i18n/id.json
M extensions/Wikibase/client/config/WikibaseClient.default.php
M extensions/Wikibase/client/i18n/bg.json
M extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php
M extensions/Wikibase/client/includes/Usage/NullUsageTracker.php
M extensions/Wikibase/client/includes/Usage/SiteLinkUsageLookup.php
M extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php
M extensions/Wikibase/client/includes/Usage/Sql/SqlUsageTracker.php
M extensions/Wikibase/client/includes/Usage/UsageLookup.php
M extensions/Wikibase/client/includes/Usage/UsageTrackingSnakFormatter.php
M extensions/Wikibase/client/includes/WikibaseClient.php
M 
extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php
M extensions/Wikibase/docs/options.wiki
M extensions/Wikibase/lib/config/WikibaseLib.default.php
M extensions/Wikibase/lib/i18n/bg.json
M extensions/Wikibase/lib/i18n/hu.json
M extensions/Wikibase/lib/includes/DataTypeDefinitions.php
M extensions/Wikibase/lib/includes/LanguageWithConversion.php
M extensions/Wikibase/lib/includes/changes/ChangeRow.php
M extensions/Wikibase/lib/includes/formatters/ErrorHandlingSnakFormatter.php
M extensions/Wikibase/lib/includes/formatters/EscapingSnakFormatter.php
M extensions/Wikibase/lib/includes/formatters/EscapingValueFormatter.php
M extensions/Wikibase/lib/includes/formatters/PropertyValueSnakFormatter.php
M extensions/Wikibase/lib/tests/phpunit/DataTypeDefinitionsTest.php
M extensions/Wikibase/repo/config/Wikibase.default.php
M extensions/Wikibase/repo/i18n/bg.json
M extensions/Wikibase/repo/i18n/gl.json
M extensions/Wikibase/repo/i18n/hu.json
M extensions/Wikibase/repo/i18n/id.json
M extensions/Wikibase/repo/i18n/pt.json
M extensions/Wikibase/repo/includes/ChangeDispatcher.php
M extensions/Wikibase/repo/includes/Diff/EntityContentDiffView.php
M extensions/Wikibase/repo/includes/Hooks/EditFilterHookRunner.php
M extensions/Wikibase/repo/includes/Interactors/ItemMergeInteractor.php
M extensions/Wikibase/repo/includes/Notifications/ChangeNotificationSender.php
M 
extensions/Wikibase/repo/includes/Notifications/JobQueueChangeNotificationSender.php
M extensions/Wikibase/repo/includes/WikibaseRepo.php
M extensions/Wikibase/repo/includes/api/MergeItems.php
M extensions/Wikibase/repo/includes/specials/SpecialMergeItems.php
M extensions/Wikibase/repo/includes/store/ChangeDispatchCoordinator.php
M extensions/Wikibase/repo/includes/store/sql/DispatchStats.php
M extensions/Wikibase/repo/includes/store/sql/SqlChangeDispatchCoordinator.php
M 
extensions/Wikibase/repo/tests/phpunit/includes/Interactors/ItemMergeInteractorTest.php
M 
extensions/Wikibase/repo/tests/phpunit/includes/LinkedData/EntityDataSerializationServiceTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/WikibaseRepoTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/api/MergeItemsTest.php
M 
extensions/Wikibase/repo/tests/phpunit/includes/specials/SpecialMergeItemsTest.php
M vendor/composer/installed.json
49 files changed, 490 insertions(+), 157 deletions(-)


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

diff --git a/composer.lock b/composer.lock
index 565bb1e..36b2dbe 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1194,7 +1194,7 @@
             "source": {
                 "type": "git",
                 "url": 
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityExternalValidation";,
-                "reference": "a69f33f6fa1820a063c3c006f1dc20ba6db9a2a4"
+                "reference": "17b1d8644a10776ecf0921ab69d743763896a032"
             },
             "require": {
                 "php": ">=5.3.0",
@@ -1242,7 +1242,7 @@
             "support": {
                 "issues": 
"https://phabricator.wikimedia.org/project/profile/1203/";
             },
-            "time": "2016-01-02 00:03:11"
+            "time": "2016-01-12 21:49:33"
         },
         {
             "name": "wikibase/internal-serialization",
@@ -1448,12 +1448,12 @@
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-                "reference": "a898b774afea645b3c17330723294fc6dd359ad4"
+                "reference": "2657287244ce617a9525cc4222a0e54d4b06e002"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/a898b774afea645b3c17330723294fc6dd359ad4";,
-                "reference": "a898b774afea645b3c17330723294fc6dd359ad4",
+                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/2657287244ce617a9525cc4222a0e54d4b06e002";,
+                "reference": "2657287244ce617a9525cc4222a0e54d4b06e002",
                 "shasum": ""
             },
             "require": {
@@ -1524,7 +1524,7 @@
                 "wikibaserepo",
                 "wikidata"
             ],
-            "time": "2016-01-11 21:54:58"
+            "time": "2016-01-13 08:07:49"
         },
         {
             "name": "wikibase/wikimedia-badges",
diff --git a/extensions/ExternalValidation/i18n/id.json 
b/extensions/ExternalValidation/i18n/id.json
new file mode 100644
index 0000000..a646b6c
--- /dev/null
+++ b/extensions/ExternalValidation/i18n/id.json
@@ -0,0 +1,49 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Beeyan"
+               ]
+       },
+       "wbqev-desc": "Periksa ulang data dengan informasi yang sesuai di dalam 
basis data eksternal",
+       "wbqev-crosscheck": "Periksa ulang dengan basis data eksternal",
+       "wbqev-crosscheck-explanation-general": "Laman khusus akan melakukan 
pemeriksaan ulang antara butir-butir dalam Wikidata dan basis data eksternal. 
Anda bisa memeriksa basis data yang kami gunakan pada laman khusus",
+       "wbqev-crosscheck-form-section": "Periksa ulang butir",
+       "wbqev-crosscheck-form-entityid-label": "Penanda butir:",
+       "wbqev-crosscheck-form-submit-label": "Periksa",
+       "wbqev-crosscheck-invalid-entity-id": "Penanda entitas itdak sahih!",
+       "wbqev-crosscheck-not-existent-entity": "Entitas tidak ada!",
+       "wbqev-crosscheck-result-headline": "Hasil untuk",
+       "wbqev-crosscheck-empty-result": "Entitas yang dimasukkan tidak 
memiliki pernyataan yang dapat diperiksa ulang oleh basis data dukungan apa 
saja.",
+       "wbqev-crosscheck-result-table-header-references": "Rujukan",
+       "wbqev-crosscheck-result-table-header-local-value": "Nilai Wikidata",
+       "wbqev-crosscheck-result-table-header-external-value": "Nilai 
eksternal",
+       "wbqev-crosscheck-result-table-header-external-source": "Sumber 
eksternal",
+       "wbqev-crosscheck-result-table-header-status": "Status",
+       "wbqev-crosscheck-status-match": "Kecocokan",
+       "wbqev-crosscheck-status-partial-match": "Kecocokan yang memungkinkan",
+       "wbqev-crosscheck-status-mismatch": "Ketidakcocokan",
+       "wbqev-crosscheck-status-references-missing": "hilang",
+       "wbqev-crosscheck-status-references-stated": "keadaan",
+       "wbqev-externaldbs": "Daftar basis data eksternal",
+       "wbqev-externaldbs-overview-headline": "Basis data",
+       "wbqev-externaldbs-name": "Nama",
+       "wbqev-externaldbs-id": "Penanda",
+       "wbqev-externaldbs-import-date": "Tanggal impor",
+       "wbqev-externaldbs-language": "Bahasa data",
+       "wbqev-externaldbs-source-urls": "Lokator Sumber Seragam (URL) Sumber",
+       "wbqev-externaldbs-size": "Ukuran",
+       "wbqev-externaldbs-license": "Lisensi",
+       "wbqev-externaldbs-no-databases": "Tidak tersedia basis data eksternal 
untuk pemeriksaan ulang.",
+       "apihelp-wbqevcrosscheck-description": "Modul API untuk memeriksa ulang 
entitas Wikibase terhadap data eksternal.",
+       "apihelp-wbqevcrosscheck-examples-1": "Menjalankan pemeriksaan ulang 
untuk semua pernyataan dari butir dengan penanda Q76.",
+       "apihelp-wbqevcrosscheck-examples-2": "Menjalankan pemeriksaan ulang 
untuk semua pernyataan dari butir dengan penanda Q76 dan butir dengan penanda 
Q567",
+       "apihelp-wbqevcrosscheck-examples-3": "Menjalankan pemeriksaan ulang 
untuk semua pernyataan dari butir dengan penanda Q76 dan butir dengan penanda 
Q567 yang mempergunakan atribut dengan penanda P19.",
+       "apihelp-wbqevcrosscheck-examples-4": "Menjalankan pemeriksaan ulang 
untuk semua pernyataan dari butir dengan penanda Q76 dan butir dengan penanda 
Q567 yang mempergunakan atribut dengan penanda P19 atau P31.",
+       "apihelp-wbqevcrosscheck-examples-5": "Menjalankan pemeriksaan ulang 
untuk klaim dengan Penanda Unik Global (GUID) 
Q42$D8404CDA-25E4-4334-AF13-A3290BCD9C0F.",
+       "wbq-subextension-name-wbqev": "Validasi eksternal",
+       "wbqev-violation-header-external-source": "Sumber eksternal",
+       "wbqev-violation-header-local-value": "Nilai Wikidata:",
+       "wbqev-violation-header-external-values": "Nilai eksternal:",
+       "wbqev-violation-short-message": "Nilai tidak cocok dengan sebuah nilai 
dalam $1. Silakan klik ikon untuk informasi lebih lanjut.",
+       "wbqev-violation-mark-as-exception": "Tandai sebagai pengecualian"
+}
diff --git a/extensions/Wikibase/client/config/WikibaseClient.default.php 
b/extensions/Wikibase/client/config/WikibaseClient.default.php
index 49c0dde..7c68e48 100644
--- a/extensions/Wikibase/client/config/WikibaseClient.default.php
+++ b/extensions/Wikibase/client/config/WikibaseClient.default.php
@@ -77,6 +77,18 @@
                 */
                'sharedCacheDuration' => 60 * 60,
 
+               /**
+                * List of data types (by data type id) not enabled on the wiki.
+                * This setting is intended to aid with deployment of new data 
types
+                * or on new Wikibase installs without items and properties yet.
+                *
+                * This setting should be consistent with the corresponding 
setting on the repo.
+                *
+                * WARNING: Disabling a data type after it is in use is 
dangerous
+                * and might break items.
+                */
+               'disabledDataTypes' => array(),
+
                // The type of object cache to use. Use CACHE_XXX constants.
                // This is both a repo and client setting, and should be set to 
the same value in
                // repo and clients for multiwiki setups.
diff --git a/extensions/Wikibase/client/i18n/bg.json 
b/extensions/Wikibase/client/i18n/bg.json
index a2aec19..4f2aebd 100644
--- a/extensions/Wikibase/client/i18n/bg.json
+++ b/extensions/Wikibase/client/i18n/bg.json
@@ -5,7 +5,8 @@
                        "Mitzev",
                        "Spiritia",
                        "StanProg",
-                       "Borislav"
+                       "Borislav",
+                       "Vodnokon4e"
                ]
        },
        "tooltip-t-wikibase": "Препратка към свързаният обект от хранилището за 
данни",
@@ -23,6 +24,8 @@
        "wikibase-editlinkstitle": "Редактиране на междуезиковите препратки",
        "wikibase-linkitem-addlinks": "Добавяне на препратки",
        "wikibase-linkitem-failure": "При опита за свързване с дадената 
страница възникна неизвестна грешка.",
+       "wikibase-linkitem-title": "Свържи със страница",
+       "wikibase-linkitem-linkpage": "Свържи със страница",
        "wikibase-linkitem-selectlink": "Изберете сайта и страницата от него, 
която искате да свърже с тази.",
        "wikibase-linkitem-input-site": "Език:",
        "wikibase-linkitem-input-page": "Страница:",
@@ -37,6 +40,9 @@
        "wikibase-rc-wikibase-edit-title": "Редакция от {{WBREPONAME}}",
        "wikibase-replicationnote": "Може да отнеме няколко минути, докато 
промените се отразят във всички уикита.",
        "wikibase-watchlist-show-changes-pref": "Показване на редакции от 
{{WBREPONAME}} в списъка ми за наблюдение",
+       "wikibase-unconnectedpages-submit": "Показване на страниците",
+       "wikibase-pageswithbadges-submit": "Показване на страниците",
        "wikibase-pageinfo-entity-id": "ID на обекта в {{WBREPONAME}}",
+       "wikibase-pageinfo-entity-id-none": "Няма",
        "wikibase-otherprojects": "Други проекти"
 }
diff --git 
a/extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php 
b/extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php
index 712d1c1..a6d9aa7 100644
--- a/extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php
+++ b/extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php
@@ -178,7 +178,7 @@
         *
         * @param EntityChange $change
         *
-        * @return Iterator<PageEntityUsages>
+        * @return Iterator of PageEntityUsages
         */
        private function getAffectedPages( EntityChange $change ) {
                $entityId = $change->getEntityId();
@@ -276,9 +276,9 @@
         * Filters updates based on namespace. This removes duplicates, 
non-existing pages, and pages from
         * namespaces that are not considered "enabled" by the namespace 
checker.
         *
-        * @param PageEntityUsages[]|Iterator<PageEntityUsages> $updates
+        * @param PageEntityUsages[]|Iterator $usages An array or iterator of 
PageEntityUsages.
         *
-        * @return Iterator<PageEntityUsages>
+        * @return Iterator of PageEntityUsages
         */
        private function filterUpdates( $usages ) {
                $titlesToUpdate = array();
diff --git a/extensions/Wikibase/client/includes/Usage/NullUsageTracker.php 
b/extensions/Wikibase/client/includes/Usage/NullUsageTracker.php
index 6464ee2..e52242a 100644
--- a/extensions/Wikibase/client/includes/Usage/NullUsageTracker.php
+++ b/extensions/Wikibase/client/includes/Usage/NullUsageTracker.php
@@ -65,7 +65,7 @@
         * @param EntityId[] $entities
         * @param string[] $aspects
         *
-        * @return Iterator<PageEntityUsages>
+        * @return Iterator Always empty.
         */
        public function getPagesUsing( array $entities, array $aspects = 
array() ) {
                return new ArrayIterator();
diff --git a/extensions/Wikibase/client/includes/Usage/SiteLinkUsageLookup.php 
b/extensions/Wikibase/client/includes/Usage/SiteLinkUsageLookup.php
index 5903d83..539e865 100644
--- a/extensions/Wikibase/client/includes/Usage/SiteLinkUsageLookup.php
+++ b/extensions/Wikibase/client/includes/Usage/SiteLinkUsageLookup.php
@@ -82,7 +82,7 @@
         * @param string[] $aspects Which aspects to consider (if omitted, all 
aspects are considered).
         * Use the EntityUsage::XXX_USAGE constants to represent aspects.
         *
-        * @return Iterator<PageEntityUsages>
+        * @return Iterator of PageEntityUsages
         * @throws UsageTrackerException
         */
        public function getPagesUsing( array $entityIds, array $aspects = 
array() ) {
diff --git a/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php 
b/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php
index 3e24ed8..4304c95 100644
--- a/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php
+++ b/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php
@@ -347,7 +347,7 @@
         * @param EntityId[] $entityIds
         * @param string[] $aspects
         *
-        * @return Iterator<PageEntityUsages> An iterator over entity usages 
grouped by page
+        * @return Iterator An iterator over PageEntityUsages grouped by page.
         */
        public function getPagesUsing( array $entityIds, array $aspects = 
array() ) {
                if ( empty( $entityIds ) ) {
diff --git a/extensions/Wikibase/client/includes/Usage/Sql/SqlUsageTracker.php 
b/extensions/Wikibase/client/includes/Usage/Sql/SqlUsageTracker.php
index 710f929..d69f75e 100644
--- a/extensions/Wikibase/client/includes/Usage/Sql/SqlUsageTracker.php
+++ b/extensions/Wikibase/client/includes/Usage/Sql/SqlUsageTracker.php
@@ -216,7 +216,7 @@
         * @param EntityId[] $entityIds
         * @param string[] $aspects
         *
-        * @return Iterator<PageEntityUsages> An iterator over entity usages 
grouped by page
+        * @return Iterator An iterator over PageEntityUsages grouped by page.
         * @throws UsageTrackerException
         */
        public function getPagesUsing( array $entityIds, array $aspects = 
array() ) {
diff --git a/extensions/Wikibase/client/includes/Usage/UsageLookup.php 
b/extensions/Wikibase/client/includes/Usage/UsageLookup.php
index 79a5c16..9ff40d0 100644
--- a/extensions/Wikibase/client/includes/Usage/UsageLookup.php
+++ b/extensions/Wikibase/client/includes/Usage/UsageLookup.php
@@ -32,7 +32,7 @@
         * @param string[] $aspects Which aspects to consider (if omitted, all 
aspects are considered).
         * Use the EntityUsage::XXX_USAGE constants to represent aspects.
         *
-        * @return Iterator<PageEntityUsages> An iterator over PageEntityUsages 
of pages using any of the given entities.
+        * @return Iterator An iterator over PageEntityUsages of pages using 
any of the given entities.
         *         If $aspects is given, only usages of these aspects are 
included in the result.
         * @throws UsageTrackerException
         */
diff --git 
a/extensions/Wikibase/client/includes/Usage/UsageTrackingSnakFormatter.php 
b/extensions/Wikibase/client/includes/Usage/UsageTrackingSnakFormatter.php
index f5eda70..a52952e 100644
--- a/extensions/Wikibase/client/includes/Usage/UsageTrackingSnakFormatter.php
+++ b/extensions/Wikibase/client/includes/Usage/UsageTrackingSnakFormatter.php
@@ -51,7 +51,7 @@
         *
         * @param Snak $snak
         *
-        * @return string Either plain text, wikitext or HTML, depending on the 
$snakFormatter provided.
+        * @return string Either plain text, wikitext or HTML, depending on the 
SnakFormatter provided.
         */
        public function formatSnak( Snak $snak ) {
                if ( $snak instanceof PropertyValueSnak ) {
diff --git a/extensions/Wikibase/client/includes/WikibaseClient.php 
b/extensions/Wikibase/client/includes/WikibaseClient.php
index c8ec0ab..29eb79f 100644
--- a/extensions/Wikibase/client/includes/WikibaseClient.php
+++ b/extensions/Wikibase/client/includes/WikibaseClient.php
@@ -485,10 +485,15 @@
                $dataTypeDefinitions = $wgWBClientDataTypes;
                Hooks::run( 'WikibaseClientDataTypes', array( 
&$dataTypeDefinitions ) );
 
+               $settings = new SettingsArray( $wgWBClientSettings );
+
                return new self(
-                       new SettingsArray( $wgWBClientSettings ),
+                       $settings,
                        $wgContLang,
-                       new DataTypeDefinitions( $dataTypeDefinitions )
+                       new DataTypeDefinitions(
+                               $dataTypeDefinitions,
+                               $settings->getSetting( 'disabledDataTypes' )
+                       )
                );
        }
 
diff --git 
a/extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php
 
b/extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php
index 7119bf6..f86dce8 100644
--- 
a/extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php
+++ 
b/extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php
@@ -5,6 +5,7 @@
 use ArrayIterator;
 use DataValues\DataValue;
 use DataValues\StringValue;
+use Iterator;
 use Title;
 use Wikibase\Client\Changes\AffectedPagesFinder;
 use Wikibase\Client\Store\TitleFactory;
@@ -558,7 +559,7 @@
        }
 
        /**
-        * @param PageEntityUsages[]|Iterator<PageEntityUsages> $usagesPerPage
+        * @param PageEntityUsages[]|Iterator $usagesPerPage An array or 
iterator of PageEntityUsages.
         *
         * @return PageEntityUsages[]
         */
diff --git a/extensions/Wikibase/docs/options.wiki 
b/extensions/Wikibase/docs/options.wiki
index aacf5d6..f574822 100644
--- a/extensions/Wikibase/docs/options.wiki
+++ b/extensions/Wikibase/docs/options.wiki
@@ -30,12 +30,10 @@
 :'''Warning:''' do not change this if you already have Wikibase entities in 
your database, since they may become unreadable!
 ;useChangesTable: Whether to record changes in the database, so they can be 
pushed to clients. Boolean, defaults to <code>true</code>. May be set to false 
in situations where there are no clients to notify, to preserve space. 
'''Note''' that if this is true, the <code>pruneChanges.php</code> script 
should be run periodically to remove old changes from the database table.
 ;changeHandlers: Array mapping change type IDs to handler classes. May be used 
by extensions to register additional change classes.
-;dataTypes: Array listing the available data types that can be used in snaks 
(and thus in claims and statements). The relevant data type identifiers are 
defined by the DataType extension. Default:
+;disabledDataTypes: Array listing of disabled data types on a wiki. This 
setting is intended to be used a new Wikibase install without items yet, or to 
control deployment of new data types. This setting should be set the same in 
the client and repo settings.
+Default:
 <poem>
-          array(
-              'wikibase-item',
-              'commonsMedia',
-          )
+          array()
 </poem>
 ;maxSerializedEntitySize: The maximum serialized size of entities, in KB. 
Loading and storing will fail if this size is exceeded. This is intended as a 
hard limit that prevents very large chunks of data being stored or processed 
due to abuse or erroneous code. Defaults to MediaWiki core's $wgMaxArticleSize 
setting.
 
diff --git a/extensions/Wikibase/lib/config/WikibaseLib.default.php 
b/extensions/Wikibase/lib/config/WikibaseLib.default.php
index de19c74..b530ff1 100644
--- a/extensions/Wikibase/lib/config/WikibaseLib.default.php
+++ b/extensions/Wikibase/lib/config/WikibaseLib.default.php
@@ -60,19 +60,6 @@
                'wikibase-query~restore' => 'Wikibase\EntityChange',
        ),
 
-       'dataTypes' => array(
-               'commonsMedia',
-               'globe-coordinate',
-               'quantity',
-               'monolingualtext',
-               'string',
-               'time',
-               'url',
-               'external-id',
-               'wikibase-item',
-               'wikibase-property',
-       ),
-
        'maxSerializedEntitySize' => $GLOBALS['wgMaxArticleSize'],
 );
 
diff --git a/extensions/Wikibase/lib/i18n/bg.json 
b/extensions/Wikibase/lib/i18n/bg.json
index 5ea236c..9073717 100644
--- a/extensions/Wikibase/lib/i18n/bg.json
+++ b/extensions/Wikibase/lib/i18n/bg.json
@@ -18,9 +18,15 @@
        "wikibase-error-autocomplete-response": "Отговор на сървъра: $1",
        "wikibase-error-ui-no-external-page": "Посочената статия не беше 
намерена в съответния сайт.",
        "wikibase-error-ui-edit-conflict": "Настъпил е конфликт на редакции. 
Презаредете и съхранете отново.",
+       "wikibase-timedetails-timezone": "Часова зона",
+       "wikibase-timedetails-calendar": "Календар",
+       "wikibase-timedetails-before": "Преди",
+       "wikibase-timedetails-after": "След",
+       "wikibase-globedetails-longitude": "Географска дължина",
+       "wikibase-globedetails-latitude": "Географска ширина",
        "wikibase-sitelinks-wikipedia": "Уикипедия",
        "wikibase-sitelinks-sitename-columnheading": "Език",
-       "wikibase-sitelinks-link-columnheading": "Свързана статия",
+       "wikibase-sitelinks-link-columnheading": "Свързана страница",
        "wikibase-snakview-snaktypeselector-somevalue": "неизвестна стойност",
        "wikibase-snakview-snaktypeselector-novalue": "без стойност",
        "wikibase-tooltip-error-details": "Подробности",
diff --git a/extensions/Wikibase/lib/i18n/hu.json 
b/extensions/Wikibase/lib/i18n/hu.json
index 3214be9..0c6e070 100644
--- a/extensions/Wikibase/lib/i18n/hu.json
+++ b/extensions/Wikibase/lib/i18n/hu.json
@@ -19,12 +19,32 @@
        "wikibase-error-autocomplete-response": "A szerver válasza: $1",
        "wikibase-error-ui-no-external-page": "A megadott cikk nem található a 
megadott wikin.",
        "wikibase-error-ui-edit-conflict": "Szerkesztési ütközés történt. 
Kérlek, töltsd újra a lapot, és mentsd el újra.",
+       "wikibase-quantitydetails-amount": "Mennyiség",
+       "wikibase-quantitydetails-upperbound": "Alsó határ",
+       "wikibase-quantitydetails-lowerbound": "Felső határ",
+       "wikibase-quantitydetails-unit": "Egység",
+       "wikibase-timedetails-isotime": "Időbélyeg",
+       "wikibase-timedetails-timezone": "Időzóna",
+       "wikibase-timedetails-calendar": "Naptár",
+       "wikibase-timedetails-precision": "Pontosság",
+       "wikibase-timedetails-before": "Előtte",
+       "wikibase-timedetails-after": "Utána",
+       "wikibase-globedetails-longitude": "Hosszúság",
+       "wikibase-globedetails-latitude": "Szélesség",
+       "wikibase-globedetails-precision": "Pontosság",
+       "wikibase-globedetails-globe": "Bolygó",
+       "wikibase-parse-error": "Rosszul formázott érték.",
+       "wikibase-parse-error-coordinate": "A koordinátaérték formátuma hibás.",
+       "wikibase-parse-error-quantity": "A mennyiségérték formátuma hibás.",
+       "wikibase-parse-error-time": "Az időérték formátuma hibás.",
        "wikibase-sitelinks-wikipedia": "Wikipédia",
        "wikibase-sitelinks-sitename-columnheading": "Nyelv",
        "wikibase-sitelinks-link-columnheading": "Kapcsolt oldal",
        "wikibase-snakview-snaktypeselector-somevalue": "ismeretlen érték",
        "wikibase-snakview-snaktypeselector-novalue": "nincs érték",
        "wikibase-tooltip-error-details": "Részletek",
+       "wikibase-undeserializable-value": "Az érték érvénytelen és nem 
jeleníthető meg.",
+       "wikibase-validator-invalid": "Érvénytelen érték",
        "datatypes-type-wikibase-item": "Tétel",
        "datatypes-type-commonsMedia": "Commons médiafájl",
        "wikibase-entity-summary-wbsetitem": "Fogalom létrehozása",
diff --git a/extensions/Wikibase/lib/includes/DataTypeDefinitions.php 
b/extensions/Wikibase/lib/includes/DataTypeDefinitions.php
index fa1766c..efa04e5 100644
--- a/extensions/Wikibase/lib/includes/DataTypeDefinitions.php
+++ b/extensions/Wikibase/lib/includes/DataTypeDefinitions.php
@@ -53,9 +53,16 @@
         * (with the prefix "PT:") and value types (with the prefix "VT:") to 
data type definitions.
         * Each data type definitions are associative arrays, refer to the 
class level documentation
         * for details.
+        * @param string[] $disabledDataTypes Array of disabled data types.
         */
-       public function __construct( $dataTypeDefinitions = array() ) {
-               Assert::parameterElementType( 'array', $dataTypeDefinitions, 
'$dataTypeDefinitions' );
+       public function __construct(
+               array $dataTypeDefinitions = array(),
+               array $disabledDataTypes = array()
+       ) {
+               $dataTypeDefinitions = $this->filterDisabledDataTypes(
+                       $dataTypeDefinitions,
+                       $disabledDataTypes
+               );
 
                $this->registerDataTypes( $dataTypeDefinitions );
        }
@@ -74,7 +81,11 @@
                Assert::parameterElementType( 'array', $dataTypeDefinitions, 
'$dataTypeDefinitions' );
 
                foreach ( $dataTypeDefinitions as $id => $def ) {
-                       Assert::parameter( strpos( $id, ':' ), 
"\$dataTypeDefinitions[$id]", 'Key must start with a prefix like "PT:" or 
"VT:".' );
+                       Assert::parameter(
+                               strpos( $id, ':' ),
+                               "\$dataTypeDefinitions[$id]",
+                               'Key must start with a prefix like "PT:" or 
"VT:".'
+                       );
 
                        if ( isset( $this->dataTypeDefinitions[$id] ) ) {
                                $this->dataTypeDefinitions[$id] = array_merge(
@@ -88,6 +99,24 @@
        }
 
        /**
+        * @param array[] $dataTypeDefinitions Associative array of data types 
and definitions.
+        * @param string[] $disabledTypes List of disabled data types
+        *
+        * @return array[] Filtered data type definitions
+        */
+       private function filterDisabledDataTypes( array $dataTypeDefinitions, 
array $disabledTypes ) {
+               foreach ( $dataTypeDefinitions as $id => $def ) {
+                       if ( 0 === strpos( $id, 'PT' ) ) {
+                               if ( in_array( substr( $id, 3 ), $disabledTypes 
) ) {
+                                       unset( $dataTypeDefinitions[$id] );
+                               }
+                       }
+               }
+
+               return $dataTypeDefinitions;
+       }
+
+       /**
         * @param array $map
         * @param string $prefix
         *
diff --git a/extensions/Wikibase/lib/includes/LanguageWithConversion.php 
b/extensions/Wikibase/lib/includes/LanguageWithConversion.php
index 43461f6..10e2107 100644
--- a/extensions/Wikibase/lib/includes/LanguageWithConversion.php
+++ b/extensions/Wikibase/lib/includes/LanguageWithConversion.php
@@ -101,8 +101,8 @@
        /**
         * Get a LanguageWithConversion object.
         *
-        * @param $language Language|string: Language (code) for this object
-        * @param $sourceLanguage null|Language|string:
+        * @param Language|string $language Language (code) for this object
+        * @param Language|string|null $sourceLanguage
         *          Source language (code) if this is a converted language, or 
null
         *
         * @throws MWException
@@ -225,7 +225,7 @@
        /**
         * Translate data after fetching them.
         *
-        * @param $text String: Data to transform
+        * @param string $text Data to transform
         * @return String: Result
         */
        public function translate( $text ) {
diff --git a/extensions/Wikibase/lib/includes/changes/ChangeRow.php 
b/extensions/Wikibase/lib/includes/changes/ChangeRow.php
index a95529f..4018468 100644
--- a/extensions/Wikibase/lib/includes/changes/ChangeRow.php
+++ b/extensions/Wikibase/lib/includes/changes/ChangeRow.php
@@ -88,7 +88,7 @@
         * @since 0.4
         *
         * @param string $name Field name
-        * @param $default mixed: Default value to return when none is found
+        * @param mixed $default Default value to return when none is found
         * (default: null)
         *
         * @throws MWException
diff --git 
a/extensions/Wikibase/lib/includes/formatters/ErrorHandlingSnakFormatter.php 
b/extensions/Wikibase/lib/includes/formatters/ErrorHandlingSnakFormatter.php
index a9d5b5a..132d5fb 100644
--- a/extensions/Wikibase/lib/includes/formatters/ErrorHandlingSnakFormatter.php
+++ b/extensions/Wikibase/lib/includes/formatters/ErrorHandlingSnakFormatter.php
@@ -61,7 +61,7 @@
         *
         * @throws InvalidArgumentException
         * @throws FormattingException
-        * @return string Either plain text, wikitext or HTML, depending on the 
$snakFormatter provided.
+        * @return string Either plain text, wikitext or HTML, depending on the 
SnakFormatter provided.
         */
        public function formatSnak( Snak $snak ) {
                try {
diff --git 
a/extensions/Wikibase/lib/includes/formatters/EscapingSnakFormatter.php 
b/extensions/Wikibase/lib/includes/formatters/EscapingSnakFormatter.php
index 69566a5..b9f05bd 100644
--- a/extensions/Wikibase/lib/includes/formatters/EscapingSnakFormatter.php
+++ b/extensions/Wikibase/lib/includes/formatters/EscapingSnakFormatter.php
@@ -4,15 +4,23 @@
 
 use Wikibase\DataModel\Snak\Snak;
 use Wikimedia\Assert\Assert;
+use Wikimedia\Assert\ParameterTypeException;
 
 /**
  * EscapingSnakFormatter wraps another SnakFormatter and
  * applies a transformation (escaping) to that formatter's output.
  *
+ * @since 0.5
+ *
  * @license GPL 2+
  * @author Daniel Kinzler
  */
 class EscapingSnakFormatter implements SnakFormatter {
+
+       /**
+        * @var string One of the SnakFormatter::FORMAT_... constants.
+        */
+       private $format;
 
        /**
         * @var SnakFormatter
@@ -25,14 +33,11 @@
        private $escapeCallback;
 
        /**
-        * @var string One of the SnakFormatter::FORMAT_... constants.
-        */
-       private $format;
-
-       /**
         * @param string $format One of the SnakFormatter::FORMAT_... constants.
-        * @param SnakFormatter $formatter
+        * @param SnakFormatter $formatter A formatter returning plain text.
         * @param callable $escapeCallback A callable taking plain text and 
returning escaped text.
+        *
+        * @throws ParameterTypeException
         */
        public function __construct( $format, SnakFormatter $formatter, 
$escapeCallback ) {
                Assert::parameterType( 'string', $format, '$format' );
@@ -48,7 +53,7 @@
         *
         * @param Snak $snak
         *
-        * @return string Either wikitext or HTML, depending on the 
$escapeCallback provided.
+        * @return string Typically wikitext or HTML, depending on the 
$escapeCallback provided.
         */
        public function formatSnak( Snak $snak ) {
                $text = $this->formatter->formatSnak( $snak );
diff --git 
a/extensions/Wikibase/lib/includes/formatters/EscapingValueFormatter.php 
b/extensions/Wikibase/lib/includes/formatters/EscapingValueFormatter.php
index 27072a1..d363f0a 100644
--- a/extensions/Wikibase/lib/includes/formatters/EscapingValueFormatter.php
+++ b/extensions/Wikibase/lib/includes/formatters/EscapingValueFormatter.php
@@ -9,6 +9,8 @@
  * EscapingValueFormatter wraps another ValueFormatter and
  * applies a transformation (escaping) to that formatter's output.
  *
+ * @since 0.5
+ *
  * @license GPL 2+
  * @author Daniel Kinzler
  */
@@ -25,8 +27,9 @@
        private $escapeCallback;
 
        /**
-        * @param ValueFormatter $formatter
+        * @param ValueFormatter $formatter A formatter returning plain text.
         * @param callable $escapeCallback A callable taking plain text and 
returning escaped text.
+        *
         * @throws InvalidArgumentException
         */
        public function __construct( ValueFormatter $formatter, $escapeCallback 
) {
@@ -39,11 +42,11 @@
        }
 
        /**
-        * @since 0.1
+        * @see ValueFormatter::format
         *
         * @param mixed $value
         *
-        * @return string
+        * @return string Typically wikitext or HTML, depending on the 
$escapeCallback provided.
         */
        public function format( $value ) {
                $text = $this->formatter->format( $value );
diff --git 
a/extensions/Wikibase/lib/includes/formatters/PropertyValueSnakFormatter.php 
b/extensions/Wikibase/lib/includes/formatters/PropertyValueSnakFormatter.php
index 2ee1d2f..f86ab0e 100644
--- a/extensions/Wikibase/lib/includes/formatters/PropertyValueSnakFormatter.php
+++ b/extensions/Wikibase/lib/includes/formatters/PropertyValueSnakFormatter.php
@@ -90,7 +90,7 @@
         * @throws InvalidArgumentException
         * @throws MismatchingDataValueTypeException
         * @throws FormattingException
-        * @return string Either plain text, wikitext or HTML, depending on the 
$valueFormatter
+        * @return string Either plain text, wikitext or HTML, depending on the 
ValueFormatter
         *  provided.
         */
        public function formatSnak( Snak $snak ) {
@@ -171,7 +171,7 @@
         * @param string|null $dataTypeId
         *
         * @throws FormattingException
-        * @return string Either plain text, wikitext or HTML, depending on the 
$valueFormatter
+        * @return string Either plain text, wikitext or HTML, depending on the 
ValueFormatter
         *  provided.
         */
        private function formatValue( DataValue $value, $dataTypeId = null ) {
diff --git a/extensions/Wikibase/lib/tests/phpunit/DataTypeDefinitionsTest.php 
b/extensions/Wikibase/lib/tests/phpunit/DataTypeDefinitionsTest.php
index 569dfb4..c4aed4e 100644
--- a/extensions/Wikibase/lib/tests/phpunit/DataTypeDefinitionsTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/DataTypeDefinitionsTest.php
@@ -16,8 +16,8 @@
  */
 class DataTypeDefinitionsTest extends \MediaWikiTestCase {
 
-       private function getDataTypeDefinitions() {
-               $definitions = array(
+       private function getDefinitions() {
+               return array(
                        'VT:FOO' => array(
                                'formatter-factory-callback' => 
'DataTypeDefinitionsTest::getFooValueFormatter',
                                'parser-factory-callback' => 
'DataTypeDefinitionsTest::getFooValueParser',
@@ -34,8 +34,10 @@
                                'formatter-factory-callback' => 
'DataTypeDefinitionsTest::getBarFormatter',
                        )
                );
+       }
 
-               return new DataTypeDefinitions( $definitions );
+       private function getDataTypeDefinitions() {
+               return new DataTypeDefinitions( $this->getDefinitions() );
        }
 
        public function testTypeIds() {
@@ -129,4 +131,21 @@
                );
        }
 
+       public function testDataTypeDefinitions_onlySomeDataTypesEnabled() {
+               $definitions = $this->getDefinitions();
+               $defs = new DataTypeDefinitions( $definitions, array( 'bar' ) );
+
+               $this->assertSame(
+                       array( 'foo' ),
+                       $defs->getTypeIds(),
+                       'data type ids'
+               );
+
+               $this->assertSame(
+                       array( 'VT:FOO' => 
'DataTypeDefinitionsTest::getFooValueFormatter' ),
+                       $defs->getFormatterFactoryCallbacks( 
DataTypeDefinitions::PREFIXED_MODE ),
+                       'formatter factory callbacks, prefixed mode'
+               );
+       }
+
 }
diff --git a/extensions/Wikibase/repo/config/Wikibase.default.php 
b/extensions/Wikibase/repo/config/Wikibase.default.php
index 8bc11c5..5fc6239 100644
--- a/extensions/Wikibase/repo/config/Wikibase.default.php
+++ b/extensions/Wikibase/repo/config/Wikibase.default.php
@@ -123,6 +123,18 @@
                // repo and clients for multiwiki setups.
                'sharedCacheType' => $GLOBALS['wgMainCacheType'],
 
+               /**
+                * List of data types (by data type id) not enabled on the wiki.
+                * This setting is intended to aid with deployment of new data 
types
+                * or on new Wikibase installs without items and properties yet.
+                *
+                * This setting should be consistent with the corresponding 
setting on the client.
+                *
+                * WARNING: Disabling a data type after it is in use is 
dangerous
+                * and might break items.
+                */
+               'disabledDataTypes' => array(),
+
                // Special non-canonical languages and their BCP 47 mappings
                // Based on: 
https://meta.wikimedia.org/wiki/Special_language_codes
                'canonicalLanguageCodes' => array(
diff --git a/extensions/Wikibase/repo/i18n/bg.json 
b/extensions/Wikibase/repo/i18n/bg.json
index 912a9be..407a10a 100644
--- a/extensions/Wikibase/repo/i18n/bg.json
+++ b/extensions/Wikibase/repo/i18n/bg.json
@@ -59,6 +59,7 @@
        "wikibase-itembytitle-lookup-fieldset": "Търсене на обекти по сайт и 
заглавие",
        "wikibase-itembytitle-lookup-site": "Сайт:",
        "wikibase-itembytitle-lookup-page": "Страница:",
+       "wikibase-itembytitle-submit": "Търсене",
        "wikibase-itemdisambiguation-lookup-language": "Езиков код:",
        "wikibase-itemdisambiguation-submit": "Търсене",
        "special-newproperty": "Създаване на ново свойство",
@@ -68,13 +69,27 @@
        "special-newitem": "Създаване на нов обект",
        "wikibase-newitem-fieldset": "Създаване на нов обект",
        "wikibase-newitem-no-external-page": "Посочената страница не беше 
намерена в съответния сайт.",
+       "wikibase-newentity-language": "Език:",
+       "wikibase-newentity-description": "Описание:",
        "wikibase-setdescription-label": "Описание:",
+       "wikibase-setlabeldescriptionaliases-description-label": "Описание:",
        "wikibase-modifyterm-language": "Езиков код:",
+       "wikibase-dispatchstats-oldest-change": "Най-старите",
+       "wikibase-dispatchstats-newest-change": "Най-новите",
        "special-listdatatypes": "Списък на всички налични типове данни",
        "wikibase-listdatatypes-intro": "Това е списък на всички типове данни, 
които в момента се използват в тази инсталация:",
+       "wikibase-listproperties-datatype": "Тип на данните:",
+       "wikibase-listproperties-all": "Всички типове данни",
+       "wikibase-listproperties-submit": "Търсене",
        "wikibase-entitieswithoutlabel-label-language": "Езиков код:",
+       "wikibase-entitieswithoutlabel-label-type": "Тип:",
+       "wikibase-entitieswithoutlabel-label-alltypes": "всички",
+       "wikibase-entitieswithoutlabel-submit": "Търсене",
        "wikibase-entitieswithoutlabel-invalid-language": "\"$1\" не е валиден 
езиков код.",
        "special-itemswithoutsitelinks": "Обекти без междуезикови препратки",
+       "wikibase-restoreold": "възстановяване",
+       "wikibase-listdatatypes-url-head": "URL адрес",
+       "datatypes-type-url": "URL адрес",
        "content-model-wikibase-item": "Обект в Уикиданни",
        "content-model-wikibase-property": "Свойство в Уикиданни",
        "content-model-wikibase-query": "Заявка към Уикиданни"
diff --git a/extensions/Wikibase/repo/i18n/gl.json 
b/extensions/Wikibase/repo/i18n/gl.json
index ede2968..f32b9e9 100644
--- a/extensions/Wikibase/repo/i18n/gl.json
+++ b/extensions/Wikibase/repo/i18n/gl.json
@@ -110,6 +110,7 @@
        "wikibase-validator-label-conflict": "A propiedade $3 xa ten a etiqueta 
\"$1\" asociada ao código de lingua $2.",
        "wikibase-validator-label-with-description-conflict": "O elemento $3 xa 
ten a etiqueta \"$1\" asociada ao código de lingua $2, co mesmo texto de 
descrición.",
        "wikibase-validator-label-no-entityid": "A etiqueta non pode ser un 
identificador de entidade válido.",
+       "wikibase-validator-no-such-media": "O ficheiro \"$1\" non existe en 
[https://commons.wikimedia.org/ Wikimedia Commons].",
        "wikibase-wikibaserepopage-not-itemid": "\"$1\" non é un identificador 
de elemento válido.",
        "wikibase-wikibaserepopage-invalid-langcode": "Descoñécese o código de 
lingua \"$1\". Utilice un código de lingua coñecido para o sistema, como 
\"gl\".",
        "wikibase-wikibaserepopage-invalid-id": "O sistema descoñece o ID 
\"$1\". Utilice un identificador de entidade válido.",
@@ -373,6 +374,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-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.",
diff --git a/extensions/Wikibase/repo/i18n/hu.json 
b/extensions/Wikibase/repo/i18n/hu.json
index f972c32..3835136 100644
--- a/extensions/Wikibase/repo/i18n/hu.json
+++ b/extensions/Wikibase/repo/i18n/hu.json
@@ -53,7 +53,7 @@
        "wikibase-description-input-help-message": "Adj meg egy rövid leírást 
ehhez a fogalomhoz $1 nyelven.",
        "wikibase-entitytermsview-input-help-message": "Írj be egy címkét, 
rövid leírást és más neveket nyelvenként ehhez az elemhez.",
        "wikibase-entitytermsforlanguageview-input-help-message": "Írj be egy 
címkét, rövid leírást és más neveket $1 nyelven ehhez az elemhez.",
-       "wikibase-statements": "Állítások",
+       "wikibase-statementsection-statements": "Állítások",
        "wikibase-sitelinks": "Ehhez a fogalomhoz kapcsolt lapok listája",
        "wikibase-sitelinks-empty": "Ehhez a fogalomhoz nincs kapcsolt lap.",
        "wikibase-sitelinks-input-help-message": "Hivatkozás létrehozása egy 
ehhez a fogalomhoz kapcsolódó lapra",
@@ -150,6 +150,7 @@
        "wikibase-setaliases-label": "Más nevek:",
        "wikibase-modifyentity-id": "Azonosító",
        "wikibase-modifyterm-language": "Nyelvkód:",
+       "wikibase-dispatchstats-change-timestamp": "Időbélyeg",
        "special-listdatatypes": "Az összes rendelkezésre álló adattípus 
listája",
        "wikibase-listdatatypes-intro": "Az összes olyan adattípus listája, 
amik fel lettek telepítve:",
        "wikibase-history-title-with-label": "„$2” ($1) laptörténete",
diff --git a/extensions/Wikibase/repo/i18n/id.json 
b/extensions/Wikibase/repo/i18n/id.json
index 6bb620a..fb6acca 100644
--- a/extensions/Wikibase/repo/i18n/id.json
+++ b/extensions/Wikibase/repo/i18n/id.json
@@ -16,13 +16,13 @@
        "wikibase-desc": "Penyimpanan data terstruktur",
        "wikibase-entity": "entitas",
        "wikibase-entity-item": "butir",
-       "wikibase-entity-property": "properti",
+       "wikibase-entity-property": "atribut",
        "wikibase-entity-query": "permintaan (''query'')",
        "wikibase-edit": "sunting",
        "wikibase-save": "simpan",
        "wikibase-cancel": "batal",
        "wikibase-add": "tambah",
-       "wikibase-addqualifier": "tambah kualifikasi",
+       "wikibase-addqualifier": "tambah penjelas",
        "wikibase-addreference": "tambah rujukan",
        "wikibase-save-inprogress": "Menyimpan...",
        "wikibase-remove-inprogress": "Menghapus...",
@@ -47,7 +47,7 @@
        "wikibase-diffview-rank-preferred": "Tingkat yang disukai",
        "wikibase-diffview-rank-normal": "Tingkat normal",
        "wikibase-diffview-rank-deprecated": "Tingkat usang",
-       "wikibase-diffview-qualifier": "kualifikasi",
+       "wikibase-diffview-qualifier": "penjelas",
        "wikibase-diffview-label": "label",
        "wikibase-diffview-alias": "nama lain",
        "wikibase-diffview-description": "pemerian",
@@ -55,7 +55,7 @@
        "wikibase-sitelink-site-edit-placeholder": "situs",
        "wikibase-sitelink-page-edit-placeholder": "laman",
        "wikibase-alias-edit-placeholder": "masukkan nama lain",
-       "wikibase-label-input-help-message": "Masukkan label dari entitas ini 
dalam $1 .",
+       "wikibase-label-input-help-message": "Masukkan label dari entitas ini 
ke dalam $1 .",
        "wikibase-description-input-help-message": "Masukkan pemerian singkat 
untuk entitas ini dalam $1.",
        "wikibase-entitytermsview-input-help-message": "Masukkan label dari 
entitas ini, pemerian singkat, dan nama lain untuk masing-masing bahasa.",
        "wikibase-entitytermsforlanguageview-input-help-message": "Masukkan 
label dari entitas ini, pemerian singkat, dan nama lain dalam $1",
@@ -69,25 +69,25 @@
        "wikibase-remove": "hapus",
        "wikibase-move-up": "pindahkan ke atas",
        "wikibase-move-down": "pindahkan ke bawah",
-       "wikibase-undo-title": "Membatalkan suntingan di \"$1\"",
-       "wikibase-restore-title": "Mengembalikan revisi lama \"$1\"",
-       "wikibase-partial-undo": "Suntingan ini sebagian dapat dibatalkan.",
+       "wikibase-undo-title": "Membatalkan suntingan ke \"$1\"",
+       "wikibase-restore-title": "Mengembalikan revisi lama dari \"$1\"",
+       "wikibase-partial-undo": "Suntingan ini dapat dibatalkan sebagian.",
        "wikibase-omitted-undo-ops": "$1 {{PLURAL:$1|perubahan}} tidak dapat 
dibatalkan karena sementara ini {{PLURAL:$1|nilai|nilai-nilai}} telah berubah.",
        "wikibase-empty-undo": "Tidak ada yang dapat dibatalkan.",
        "wikibase-undo-revision-error": "Pembatalan gagal",
        "wikibase-undo-samerev": "Dua revisi berbeda harus ditentukan guna bisa 
membatalkan sebuah suntingan.",
        "wikibase-undo-badpage": "Revisi salah: Revisi $2 bukan milik [[$1]].",
        "wikibase-undo-firstrev": "Tidak dapat membatalkan pembuatan halaman",
-       "wikibase-undo-nocontent": "Tidak dapat memuat revisi $2 dari halaman 
$1",
+       "wikibase-undo-nocontent": "Tidak dapat memuat isir revisi $2 dari 
halaman $1",
        "wikibase-propertyedittool-counter-pending-tooltip": "{{PLURAL:$1|$1 
nilai}} belum tersimpan",
        "wikibase-propertyedittool-counter-entrieslabel": "{{PLURAL:$1|entri}}",
-       "wikibase-disambiguation-title": "Disambiguasi untuk \"$1\"",
+       "wikibase-disambiguation-title": "Ketaksaan untuk \"$1\"",
        "wb-special-newitem-new-item-notification": "Butir baru $1 telah dibuat 
dan dialihkan ke laman tersebut. Kembali ke $2.",
        "wikibase-aliases-input-help-message": "Untuk membuat entitas lebih 
mudah ditemukan, Anda bisa memasukkan  nama lain.",
        "wikibase-aliases-empty": "Nama lain belum ditentukan",
        "wikibase-propertypage-datatype": "Jenis data",
-       "wikibase-claimview-snak-tooltip": "Masukkan nilai yang sesuai dengan 
properti bernama \"$1\". Jika properti tidak memiliki nilai yang ditetapkan 
atau nilai sebenarnya tidak diketahui, alternatif Anda dapat menentukan nilai 
kustom dengan mengklik ikon di sebelah kotak input.",
-       "wikibase-claimview-snak-new-tooltip": "Setelah menentukan properti 
Anda dapat memasukkan nilai yang sesuai. Jika properti tidak memiliki nilai 
yang ditentukan atau nilai sebenarnya tidak diketahui, alternatif Anda dapat 
menentukan nilai kustom dengan mengklik ikon di sebelah kotak input.",
+       "wikibase-claimview-snak-tooltip": "Masukkan nilai yang sesuai dengan 
properti bernama \"$1\". Jika properti tidak memiliki nilai yang ditetapkan 
atau nilai sebenarnya tidak diketahui, alternatif Anda dapat menentukan nilai 
kustom dengan mengeklik ikon di sebelah kotak input.",
+       "wikibase-claimview-snak-new-tooltip": "Setelah menentukan properti 
Anda dapat memasukkan nilai yang sesuai. Jika properti tidak memiliki nilai 
yang ditentukan atau nilai sebenarnya tidak diketahui, alternatif Anda dapat 
menentukan nilai kustom dengan mengeklik ikon di sebelah kotak input.",
        "wikibase-statementview-rank-preferred": "Tingkat yang disukai",
        "wikibase-statementview-rank-normal": "Rangking normal",
        "wikibase-statementview-rank-deprecated": "Tingkat usang",
@@ -104,7 +104,7 @@
        "wikibase-snakview-snaktypeselector-value": "Atur nilai",
        "wikibase-snakformat-invalid-value": "Nilai tidak sahih.",
        "wikibase-snakformat-propertynotfound": "Properti tidak ditemukan",
-       "wikibase-shortcopyrightwarning": "Dengan mengklik \"$1\", Anda setuju 
pada [[$2|ketentuan layanan]], dan Anda yakin setuju untuk melepas kontribusi 
Anda di bawah $3.",
+       "wikibase-shortcopyrightwarning": "Dengan mengeklik \"$1\", Anda 
menyetujui [[$2|ketentuan layanan]], dan Anda sepakat untuk melepas sumbangan 
Anda di bawah $3 tanpa bisa ditarik kembali.",
        "wikibase-copyrighttooltip-acknowledge": "Saya menerima syarat ini 
untuk selanjutnya. Jangan tampilkan lagi pesan ini.",
        "wikibase-entityselector-more": "kembangkan",
        "wikibase-anonymouseditwarning": "Peringatan: Anda belum masuk 
log.\nAlamat IP Anda akan direkam dalam sejarah penyuntingan entitas ini.",
@@ -140,7 +140,7 @@
        "wikibase-gotolinkedpage-error-page-not-found": "Tidak ada laman yang 
ditemukan untuk kombinasi antara item dan situs",
        "wikibase-gotolinkedpage-error-item-id-invalid": "Penanda butir yang 
dimasukkan tidak sahih",
        "wikibase-gotolinkedpage-error-item-not-found": "Item tidak dapat 
ditemukan",
-       "special-itemdisambiguation": "Butir disambiguasi",
+       "special-itemdisambiguation": "Butir ketaksaan",
        "wikibase-itemdisambiguation-lookup-fieldset": "Cari item menurut 
bahasa dan label",
        "wikibase-itemdisambiguation-lookup-language": "Kode bahasa:",
        "wikibase-itemdisambiguation-lookup-label": "Label:",
@@ -361,6 +361,8 @@
        "apihelp-wbeditentity-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.",
        "apihelp-wbeditentity-param-bot": "Tandai suntingan ini sebagai bot. 
Panji Lokator Sumber Seragam (URL) hanya akan dipercaya jika pengguna masuk ke 
kelompok \"bot\".",
        "apihelp-wbeditentity-param-data": "Objek berseri yang dipergunakan 
sebagai sumber data. \nSebuah entitas yang baru dibuat akan diberikan sebuah 
'id'.",
+       "apihelp-wbeditentity-param-clear": "Jika diatur seperti ini, makan 
seluru entitas akan dikosongkan sebelum dilakukan tindakan terkait.\nEntitas 
tidak akan disimpan sebelum diisi dengan \"data\", memungkinkan dengan bagian 
yang dikecualikan.",
+       "apihelp-wbeditentity-param-new": "Jika diatur seperti ini, maka sebuah 
entitas baru akan dibuat.\nAtur sesuai dengan jenis entitas yang ingin Anda 
buat.\nTidak diperbolehkan untuk mengatur seperti ini saat 'id' juga sudah 
diatur.",
        "apihelp-wbeditentity-example-1": "Buat sebuah butir kosong dan baru, 
kembalikan struktur entitas secara penuh",
        "apihelp-wbeditentity-example-2": "Buat item baru dan atur label untuk 
de dan en",
        "apihelp-wbeditentity-example-3": "Buat sebuah atribut baru yang 
mengandung data Notasi Objek JavaScript (JSON), kembalikan stuktur entitas 
secara penuh",
@@ -369,6 +371,7 @@
        "apihelp-wbeditentity-example-6": "Atur pranala antarwiki untuk nowiki, 
timpalah jika ternyata sudah ada",
        "apihelp-wbeditentity-example-7": "Atur pemerian untuk nb, timpalah 
jika ternyata sudah ada",
        "apihelp-wbeditentity-example-8": "Membuat sebuah klaim baru pada butir 
dari atribut P56 dan sebuah nilai \"ExampleString\"",
+       "apihelp-wbeditentity-example-9": "Hapus klaim dari butir dengan 
Penanda Unik Global (GUID) Q42$D8404CDA-25E4-4334-AF13-A3290BCD9C0F dan 
Q42$GH678DSA-01PQ-28XC-HJ90-DDFD9990126X",
        "apihelp-wbeditentity-example-10": "Atur klaim dengan Penanda Unik 
Global (GUID) ke nilai klaim",
        "apihelp-wbeditentity-example-11": "Tambah label tanpa penimpaan, jika 
sudah ada sebelumnya.",
        "apihelp-wbeditentity-example-12": "Hapus label",
@@ -381,7 +384,11 @@
        "apihelp-wbformatvalue-example-1": "Format sebuah nilai untai 
(''string'') sederhana.",
        "apihelp-wbformatvalue-example-2": "Format sebuah nilai untai 
(''string'') sebagai sebuah Lokator Sumber Seragam (URL) dalam Bahasa Markah 
Hiperteks (HTML).",
        "apihelp-wbgetclaims-description": "Dapatkan klaim dari Wikibase.",
-       "apihelp-wbgetclaims-param-entity": "Penanda entitas untuk mendapatkan 
kalim. Dibutuhkan kecuali jika Penanda Unik Global (GUID) klaim disediakan.",
+       "apihelp-wbgetclaims-param-entity": "Penanda entitas untuk mendapatkan 
kalim. Dibutuhkan kecuali jika Penanda Unik Global (GUID) klaim tersedia.",
+       "apihelp-wbgetclaims-param-property": "Penyaring pilihan yang 
dipergunakan hanya untuk mengembalikan klaim dengan snak utama yang sudah 
memiliki atribut tertentu",
+       "apihelp-wbgetclaims-param-claim": "Sebuah Penanda Unik Global (GUID) 
sedang mengidentifikasikan klaim. Dibutuhkan kecuali jika entitas tersedia. 
Penanda Unik Global (GUID) merupakan sebuah penanda unik secara global untuk 
sebuah klaim, contohnya \"q42$D8404CDA-25E4-4334-AF13-A3290BCD9C0F\".",
+       "apihelp-wbgetclaims-param-rank": "Penyaring pilihan yang hanya 
dipergunakan untuk mengembalikan klaim dengan peringkat tertentu",
+       "apihelp-wbgetclaims-param-props": "Beberapa bagian klaim akan 
dikembalikan secara terpilih. Parameter ini akan mengendalikan klaim mana saja 
yang akan dikembalikan.",
        "apihelp-wbgetclaims-example-1": "Dapatkan klaim untuk butir dengan 
penanda Q42",
        "apihelp-wbgetclaims-example-2": "Dapatkan klaim untuk item dengan 
penanda Q42 dan atribut dengan penanda P2",
        "apihelp-wbgetclaims-example-3": "Peroleh klaim dari butir dengan 
penanda Q42 yang memiliki peringat normal",
@@ -419,30 +426,56 @@
        "apihelp-wbmergeitems-description": "Gabungkan beberapa butir.",
        "apihelp-wbmergeitems-param-fromid": "Id untuk digabungkan dari",
        "apihelp-wbmergeitems-param-toid": "Id untuk digabungkan ke",
+       "apihelp-wbmergeitems-param-ignoreconflicts": "Larik unsur pada butir, 
untuk mengesampingkan konflik, hanya bisa mengandung nilai \"description\" dan 
atau \"sitelink\" dan atau \"statement\"",
        "apihelp-wbmergeitems-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.",
-       "apihelp-wbmergeitems-example-1": "Gabungkan data dari Q42 ke Q222",
+       "apihelp-wbmergeitems-param-bot": "Tandai suntingan ini sebagai bot. 
Panji Lokator Sumber Seragam (URL) hanya akan dipercaya jika pengguna masuk ke 
kelompok \"bot\".",
+       "apihelp-wbmergeitems-example-1": "Menggabungkan data dari Q42 ke dalam 
Q222",
        "apihelp-wbmergeitems-example-2": "Gabungkan data dari Q555 ke Q3",
-       "apihelp-wbmergeitems-example-3": "Gabungkan data dari Q66 ke dalam Q99 
dan abaikan semua pranala antarwiki yang bertentangan",
+       "apihelp-wbmergeitems-example-3": "Menggabungkan data dari Q66 ke dalam 
Q99 dan abaikan semua pranala antarwiki yang bertentangan",
+       "apihelp-wbmergeitems-example-4": "Menggabungkan data dari Q66 ke dalam 
Q99 dan abaikan semua pranala antarwiki dan pemerian yang bertentangan",
+       "apihelp-wbparsevalue-description": "Menguraikan nilai dengan 
menggunakan sebuah ValueParser.",
+       "apihelp-wbparsevalue-param-parser": "Penanda ValueParser untuk 
digunakan.  <span class=\"apihelp-deprecated\">Usang</span>. Gunakan parameter 
jenis data sebagai gantinya.",
+       "apihelp-wbparsevalue-param-datatype": "Jenis data dari nilai untuk 
diurai. Tentukan parser yang dipergunakan.",
+       "apihelp-wbparsevalue-param-validate": "Apabila ingin memeriksa lebih 
jauh lagi data yang sudah lolos.",
        "apihelp-wbparsevalue-param-values": "Nilai untuk dipilah",
+       "apihelp-wbparsevalue-param-options": "Pilihan parser harus 
dipergunakan. Sediakan sebagai sebuah objek Notasi Objek JavaScript (JSON)",
+       "apihelp-wbparsevalue-example-1": "Urai sebuah untai (''string'') biasa 
menjadi sebuah obek StringValue",
+       "apihelp-wbparsevalue-example-2": "Urai 1994-02-08 menjadi sebuah objek 
TimeValue dengan presisi 9 (tahun)",
+       "apihelp-wbparsevalue-example-3": "Urai 1994-02-08 ke sebuah objek 
TimeValue dengan sebuah presisi senilai 14 (detik) dengan pengaktifan validasi 
menyebabkan kegagalan validasi",
        "apihelp-wbremoveclaims-description": "Hapus klaim Wikibase",
        "apihelp-wbremoveclaims-param-baserevid": "Penanda angka untuk 
perbaikan berdasarkan perubahan yang terjadi.\nIni digunakan untuk melacak 
konflik yang terjadi saat penyimpanan.",
        "apihelp-wbremoveclaims-param-bot": "Tandai suntingan ini sebagai bot. 
Panji Lokator Sumber Seragam (URL) hanya akan dipercaya jika pengguna masuk ke 
kelompok \"bot\".",
+       "apihelp-wbremoveclaims-param-claim": "Satu buah Penanda Unik Global 
(GUID) atau beberapa Penanda Unik Global (GUID) sedang mengidentifikasikan 
klaim untuk dihapus. Semua klaim harus termasuk dalam entitas yang sama.",
+       "apihelp-wbremoveclaims-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.",
+       "apihelp-wbremoveclaims-example-1": "Hapus klaim dengan Penanda Unik 
Global (GUID) \"Q42$D8404CDA-25E4-4334-AF13-A3290BCD9C0N\"",
        "apihelp-wbremovequalifiers-description": "Hapus sebuah penjelas dari 
sebuah klaim.",
        "apihelp-wbremovequalifiers-param-baserevid": "Penanda angka untuk 
perbaikan berdasarkan perubahan yang terjadi.\nIni digunakan untuk melacak 
konflik yang terjadi saat penyimpanan.",
        "apihelp-wbremovequalifiers-param-bot": "Tandai suntingan ini sebagai 
bot. Panji Lokator Sumber Seragam (URL) hanya akan dipercaya jika pengguna 
masuk ke kelompok \"bot\".",
+       "apihelp-wbremovequalifiers-param-claim": "Sebuah Penanda Unik Global 
(GUID) sedang mengidentifikasikan  klaim yang akan dihapus penjelas di 
dalamnya",
+       "apihelp-wbremovequalifiers-param-qualifiers": "Hash snak dari penjelas 
untuk penghapusan",
        "apihelp-wbremovequalifiers-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.",
+       "apihelp-wbremovequalifiers-example-1": "Hapus penjelas dengan hash 
\"1eb8793c002b1d9820c833d234a1b54c8e94187e\" dari klaim dengan Penanda Unik 
Global (GUID) \"Q42$D8404CDA-25E4-4334-AF13-A3290BCD9C0F\"",
+       "apihelp-wbremovereferences-description": "Hapus satu rujukan atau 
lebih dari pernyataan yang sama.",
        "apihelp-wbremovereferences-param-baserevid": "Penanda angka untuk 
perbaikan berdasarkan perubahan yang terjadi.\nIni digunakan untuk melacak 
konflik yang terjadi saat penyimpanan.",
        "apihelp-wbremovereferences-param-bot": "Tandai suntingan ini sebagai 
bot. Panji Lokator Sumber Seragam (URL) hanya akan dipercaya jika pengguna 
masuk ke kelompok \"bot\".",
+       "apihelp-wbremovereferences-param-statement": "Sebuah Penanda Unik 
Global (GUID) sedang mengidentifikasikan pernyataan untuk sebuah rujukan yang 
sedang diatur",
        "apihelp-wbremovereferences-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.",
+       "apihelp-wbremovereferences-param-references": "Hash rujukan yang harus 
dihapus",
+       "apihelp-wbremovereferences-example-1": "Hapus rujukan dengan hash 
\"455481eeac76e6a8af71a6b493c073d54788e7e9\" dari klaim dengan Penanda Unik 
Global (GUID)\"Q42$D8404CDA-25E4-4334-AF13-A3290BCD9C0F\"",
+       "apihelp-wbsearchentities-description": "Cari entitas dengan label dan 
nama lain.\nKembali ke label dan pemerian untuk entitas dalam bahasa pengguna 
jika memungkinkan.\nKembali ke rincian yang memiliki kata yang cocok.\nNaskah 
dengan kata yang cocok juga ada dalam nama lain utama jika berbeda dari label 
tertayang.",
        "apihelp-wbsearchentities-param-search": "Cari untuk teks ini.",
        "apihelp-wbsearchentities-param-language": "Cari untuk bahasa ini.",
+       "apihelp-wbsearchentities-param-strictlanguage": "Apabila ingin 
menonaktifkan bahasa sekunder",
        "apihelp-wbsearchentities-param-type": "Cari untuk jenis entitas ini.",
        "apihelp-wbsearchentities-param-limit": "Jumlah hasil maksimal",
+       "apihelp-wbsearchentities-param-continue": "Ofset pada tempat untuk 
melanjutkan sebuah pencarian",
+       "apihelp-wbsearchentities-example-1": "Cari \"abc\" dalam bahasa 
Inggris dengan pengaturan standar untuk jenis dan batas",
        "apihelp-wbsearchentities-example-2": "Cari \"abc\" dalam bahasa 
Inggris dengan batas 50 hasil",
        "apihelp-wbsearchentities-example-3": "Cari \"alphabet\" dalam bahasa 
Inggris untuk jenis properti",
        "apihelp-query+wbsearch-description": "Cari entitas dengan menggunakan 
label dan nama lain.\nHal ini bisa dipergunakan sebagai sebuah pembangkit untuk 
permintaan (''query'') lain.",
        "apihelp-query+wbsearch-param-search": "Cari teks ini.",
        "apihelp-query+wbsearch-param-language": "Cari dalam bahasa ini.",
+       "apihelp-query+wbsearch-param-strictlanguage": "Apabila ingin 
menonaktifkan bahasa sekunder",
        "apihelp-query+wbsearch-param-type": "Cari untuk jenis entitas ini.",
        "apihelp-query+wbsearch-param-limit": "Jumlah hasil maksimal",
        "apihelp-query+wbsearch-example-1": "Cari \"abc\" dalam bahasa Inggris 
dengan pengaturan standar untuk jenis dan batas",
@@ -461,12 +494,17 @@
        "apihelp-wbsetaliases-param-language": "Bahasa untuk pengaturan nama 
lain",
        "apihelp-wbsetaliases-example-1": "Atur nama lain berbahasa Inggris 
untuk entitas dengan penanda Q1 ke Foo dan Bar",
        "apihelp-wbsetaliases-example-2": "Tambah Foo dan Bar ke daftar nama 
lain berbahasa Inggris untuk entitas dengan penanda Q1",
+       "apihelp-wbsetaliases-example-3": "Hapus Foo dan Bar dari daftar nama 
lain berbahasa Inggris untuk entitas dengan penanda Q1",
+       "apihelp-wbsetaliases-example-4": "Hapus Foo dari daftar nama lain 
berbahasa Inggris untuk entitas dengan penanda Q1 saat penambahan Bar ke 
dalamnya",
        "apihelp-wbsetclaim-description": "Buat atau perbaharui seluruh 
Pernyataan atau Klaim.",
        "apihelp-wbsetclaim-param-claim": "Serialisasi Pernyataan atau Klaim",
+       "apihelp-wbsetclaim-param-index": "Indeks dalam daftar pernyataan 
entias untuk dipindahkan ke pernyataan. Bukan keharusan. Perhatikan saat 
pengaturan penempatan sebuah indeks tidak boleh di samping sebuah pernyataan 
yang snak utamanya tidak memiliki ciri atribut yang sama. Semua grup pernyataan 
yang mempunyai ciri snak utama yang atributnya sama akan dipindah. Saat tidak 
tersedia, sebuah pernyataan yang sudah ada akan tetap pada tempatnya, sedangkan 
sebuah pernyataan baru akan ditambahkan ke posisi terakhir dari snak utama yang 
memiliki atribut yang sama.",
        "apihelp-wbsetclaim-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.",
        "apihelp-wbsetclaim-param-baserevid": "Penanda angka untuk perbaikan 
berdasarkan perubahan yang terjadi.\nIni digunakan untuk melacak konflik yang 
terjadi saat penyimpanan.",
        "apihelp-wbsetclaim-param-bot": "Tandai suntingan ini sebagai bot. 
Panji Lokator Sumber Seragam (URL) hanya akan dipercaya jika pengguna masuk ke 
kelompok \"bot\".",
        "apihelp-wbsetclaim-example-1": "Atur klaim dengan penanda tertenu 
untuk atribut P1 dengan sebuah nilai untai (''string'') \"City\"",
+       "apihelp-wbsetclaim-example-2": "Atur klaim yang memiliki penanda 
tertentu ke atribut P1 dengan sebuah nilai untai (''string'') \"City\". 
Kemudian, pindahkan klaim ke posisi topmost dalam klaim subgrup entitas yang 
memiliki ciri atribut utama snak P1. Sebagai tambahan, pindahkan seluruh 
subgrup ke tempat teratas dari semua subgrup yang dikumpulkan oleh atribut.",
+       "apihelp-wbsetclaim-example-3": "Atur Pernyataan dengan penanda 
tertentu ke Atribut P1 dengan nilai untai (''string'') \"City\" serta atur 
Rujukan Pernyatan ke sebuah Rujukan tunggal yang memiliki ciri nilai  untai 
(''string'') \"The Economy of Cities\" yang ditetapkan ke Atribut P2.",
        "apihelp-wbsetclaimvalue-description": "Atur nilai dari sebuah klaim 
Wikibase",
        "apihelp-wbsetclaimvalue-param-claim": "Sebuah Penanda Unik Global 
(GUID) sedang mengidentifikasi klaim",
        "apihelp-wbsetclaimvalue-param-snaktype": "Jenis snak",
@@ -474,6 +512,7 @@
        "apihelp-wbsetclaimvalue-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.",
        "apihelp-wbsetclaimvalue-param-baserevid": "Penanda angka untuk 
perbaikan berdasarkan perubahan yang terjadi.\nIni digunakan untuk melacak 
konflik yang terjadi saat penyimpanan.",
        "apihelp-wbsetclaimvalue-param-bot": "Tandai suntingan ini sebagai bot. 
Panji Lokator Sumber Seragam (URL) hanya akan dipercaya jika pengguna masuk ke 
kelompok \"bot\".",
+       "apihelp-wbsetclaimvalue-example-1": "Atur klaim dengan Penanda Unik 
Global (GUID)Q42$D8404CDA-25E4-4334-AF13-A3290BCD9C0F ke sebuah nilai pada Q1",
        "apihelp-wbsetdescription-description": "Atur sebuah pemerian untuk 
satu entitas tunggal Wikibase",
        "apihelp-wbsetdescription-param-id": "Penanda untuk entitas ini, 
termasuk awalan.\nGunakan salah satu antara 'id' atau 'site' dan bersama dengan 
'title'.",
        "apihelp-wbsetdescription-param-site": "Sebuah penanda untuk situs ini 
terletak pada laman yang ada. Gunakan bersama dengan 'title' untuk membuat 
pranala antarwiki yang lengkap.",
@@ -483,6 +522,8 @@
        "apihelp-wbsetdescription-param-bot": "Tandai suntingan ini sebagai 
bot. Panji Lokator Sumber Seragam (URL) hanya akan dipercaya jika pengguna 
masuk ke kelompok \"bot\".",
        "apihelp-wbsetdescription-param-language": "Bahasa pemerian",
        "apihelp-wbsetdescription-param-value": "Nilai untuk diatur dalam 
pemerian",
+       "apihelp-wbsetdescription-example-1": "Atur untai (''string'') \"An 
encyclopedia that everyone can edit\" untuk laman dengan penanda \"Q42\" 
sebagai sebuah pemerian dalam bahasa Inggris",
+       "apihelp-wbsetdescription-example-2": "Atur untai (''string'') \"An 
encyclopedia that everyone can edit\"  sebagai sebuah pemerian dalam bahasa 
Inggris untuk laman dengan pranala antarwiki 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 antarwiki yang lengkap.",
@@ -492,16 +533,21 @@
        "apihelp-wbsetlabel-param-bot": "Tandai suntingan ini sebagai bot. 
Panji Lokator Sumber Seragam (URL) hanya akan dipercaya jika pengguna masuk ke 
kelompok \"bot\".",
        "apihelp-wbsetlabel-param-language": "Bahasa pada label",
        "apihelp-wbsetlabel-param-value": "Nilai pada label",
+       "apihelp-wbsetlabel-example-1": "Atur untai (''string'') \"Wikimedia\" 
untuk laman dengan penanda \"Q42\" sebagai sebuah label dalam bahasa Inggris 
dan laporkan dalam Notasi Objek JavaScript (JSON) cetak yang memadai",
        "apihelp-wbsetlabel-example-2": "Atur label bahasa Inggris ke \"Earth\" 
untuk butir yang pranala antarwiki enwiki => \"Earth\".",
        "apihelp-wbsetqualifier-description": "Buat sebuah penjelas atau atur 
nilai dari penjelas yang sudah ada.",
+       "apihelp-wbsetqualifier-param-claim": "Sebuah Penanda Unik Global 
(GUID) sedang mengidentifikasikan klaim untuk sebuah penjelas yang sedang 
diatur",
+       "apihelp-wbsetqualifier-param-property": "Penanda atribut 
snak.\nSebaiknya hanya diberikan saat pembuatan sebuah penjelas baru atau 
penggantian atribut yang sudah ada",
        "apihelp-wbsetqualifier-param-value": "Nilai baru dari penjelas.\nHanya 
dapat diberikan untuk penjelas PropertyValueSnak",
-       "apihelp-wbsetqualifier-param-snaktype": "Jenis snak.\nHanya bisa 
diberikan saat pembuatan sebuah penjelas baru atau penggantian jenis penjelas 
yang sudah ada",
+       "apihelp-wbsetqualifier-param-snaktype": "Jenis snak.\nSebaiknya hanya 
diberikan saat pembuatan sebuah penjelas baru atau penggantian jenis penjelas 
yang sudah ada",
+       "apihelp-wbsetqualifier-param-snakhash": "''Hash'' snak untuk 
pengubahan.\nSebaiknya hanya diberikan untuk penjelas yang sudah ada",
        "apihelp-wbsetqualifier-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.",
        "apihelp-wbsetqualifier-param-baserevid": "Penanda angka untuk 
perbaikan berdasarkan perubahan yang terjadi.\nIni digunakan untuk melacak 
konflik yang terjadi saat penyimpanan.",
        "apihelp-wbsetqualifier-param-bot": "Tandai suntingan ini sebagai bot. 
Panji Lokator Sumber Seragam (URL) hanya akan dipercaya jika pengguna masuk ke 
kelompok \"bot\".",
        "apihelp-wbsetqualifier-example-1": "Atur penjelas untuk klaim tertentu 
dengan atribut P1 untuk nilai untai (''string'') GdyjxP8I6XB3",
        "apihelp-wbsetreference-description": "Buat sebuah rujukan atau atur 
nilai dari rujukan yang sudah ada.",
        "apihelp-wbsetreference-param-statement": "Sebuah Penanda Unik Global 
(GUID) sedang mengidentifikasikan pernyataan untuk sebuah rujukan yang sedang 
diatur",
+       "apihelp-wbsetreference-param-snaks": "Snak untuk mengatur rujukan. 
Objek Notasi Objek JavaScript (JSON) dengan penanda atribut yang merujuk pada 
larik yang mengandung snak untuk atribut tersebut",
        "apihelp-wbsetreference-param-snaks-order": "Urutan dari snak. Notasi 
Objek JavaScript (JSON) menyusun untai (''string'') penanda atribut",
        "apihelp-wbsetreference-param-reference": "Sebuah ''hash'' pada rujukan 
harus diperbaharui. Bukan keharusan. Saat tidak disediakan, sebuah rujukan baru 
akan dibuat.",
        "apihelp-wbsetreference-param-index": "Indeks dalam daftar rujukan 
pernyataan tempat untuk memindah rujukan. Bukan keharusan. Saat tidak tersedia, 
sebuah rujukan yang sudah ada akan tetap pada tempatnya sedangkan rujukan baru 
akan dibubuhkan.",
diff --git a/extensions/Wikibase/repo/i18n/pt.json 
b/extensions/Wikibase/repo/i18n/pt.json
index 34eae36..b7390ed 100644
--- a/extensions/Wikibase/repo/i18n/pt.json
+++ b/extensions/Wikibase/repo/i18n/pt.json
@@ -60,7 +60,7 @@
        "wikibase-description-input-help-message": "Introduza uma descrição 
breve em $1.",
        "wikibase-entitytermsview-input-help-message": "Insira um rótulo para 
esta entidade, uma descrição breve e nomes alternativos por idioma.",
        "wikibase-entitytermsforlanguageview-input-help-message": "Insira o 
rótulo, uma breve descrição e nomes alternativos para esta entidade em $1.",
-       "wikibase-statements": "Declarações",
+       "wikibase-statementsection-statements": "Declarações",
        "wikibase-sitelinks": "Ligações de sítio",
        "wikibase-sitelinkgroupview-input-help-message": "Adicione uma ligação 
de sítio, especificando um sítio e uma respetiva página, edite ou remova 
ligações de sítio existentes.",
        "wikibase-sitelinks-empty": "Nenhuma página está ligada a este item.",
@@ -112,6 +112,7 @@
        "wikibase-validator-sitelink-conflict": "A ligação $1 já está a ser 
utilizada pelo item $2. Pode removê-la de $2 se não pertencer mais ou fundir os 
itens se forem exatamente sobre o mesmo tópico.",
        "wikibase-validator-label-conflict": "A propriedade $3 já possui a 
etiqueta \"$1\" associada com o código de idioma $2.",
        "wikibase-validator-label-with-description-conflict": "O item $3 já 
possui o rótulo \"$1\" associado com o código de idioma $2, utilizando o mesmo 
texto para a descrição.",
+       "wikibase-validator-no-such-media": "O ficheiro \"$1\" não existe no 
[https://commons.wikimedia.org/ Wikimedia Commons].",
        "wikibase-wikibaserepopage-not-itemid": "\"$1\" não é o ID de um item 
válido.",
        "wikibase-wikibaserepopage-invalid-langcode": "O identificador de 
idioma \"$1\" é desconhecido. Por favor, utilize um identificador de idioma 
reconhecido pelo sistema, como \"pt\".",
        "wikibase-wikibaserepopage-invalid-id": "O identificador \"$1\" não é 
conhecido pelo sistema. Utilize um identificador válido.",
diff --git a/extensions/Wikibase/repo/includes/ChangeDispatcher.php 
b/extensions/Wikibase/repo/includes/ChangeDispatcher.php
index 37ad808..c181ccf 100644
--- a/extensions/Wikibase/repo/includes/ChangeDispatcher.php
+++ b/extensions/Wikibase/repo/includes/ChangeDispatcher.php
@@ -278,8 +278,8 @@
         * collect the changes for the next batch. The number of requests 
needed can be adjusted
         * using $this->batchChunkFactor (via the 'dispatchBatchChunkFactor' 
setting).
         *
-        * @param string $siteID:    The client wiki's global site identifier, 
as used by sitelinks.
-        * @param int $after:  The last change ID processed by a previous run. 
All changes returned
+        * @param string $siteID The client wiki's global site identifier, as 
used by sitelinks.
+        * @param int $after The last change ID processed by a previous run. 
All changes returned
         *                     will have an ID greater than $after.
         *
         * @return array( $batch, $seen ), where $batch is a list of Change 
objects, and $seen
@@ -365,9 +365,9 @@
         * Currently, we keep EntityChanges for entities the client wiki is 
subscribed to, or
         * that modify a sitelink to the client wiki.
         *
-        * @param string   $siteID : The client wiki's global site identifier, 
as used by sitelinks.
-        * @param Change[] $changes: The list of changes to filter.
-        * @param int      $limit:   The max number of changes to return
+        * @param string $siteID The client wiki's global site identifier, as 
used by sitelinks.
+        * @param Change[] $changes The list of changes to filter.
+        * @param int $limit The max number of changes to return
         *
         * @return array( $batch, $seen ), where $batch is the filtered list of 
Change objects,
         *         and $seen if the ID of the last change considered for the 
batch
diff --git a/extensions/Wikibase/repo/includes/Diff/EntityContentDiffView.php 
b/extensions/Wikibase/repo/includes/Diff/EntityContentDiffView.php
index de96ad3..4c6987c 100644
--- a/extensions/Wikibase/repo/includes/Diff/EntityContentDiffView.php
+++ b/extensions/Wikibase/repo/includes/Diff/EntityContentDiffView.php
@@ -128,7 +128,7 @@
         * Get a header for a specified revision.
         *
         * @param $rev Revision
-        * @param $complete String: 'complete' to get the header wrapped 
depending
+        * @param string $complete 'complete' to get the header wrapped 
depending
         *        the visibility of the revision and a link to edit the page.
         *
         * @return String HTML fragment
diff --git a/extensions/Wikibase/repo/includes/Hooks/EditFilterHookRunner.php 
b/extensions/Wikibase/repo/includes/Hooks/EditFilterHookRunner.php
index 0c482c0..1de1a6d 100644
--- a/extensions/Wikibase/repo/includes/Hooks/EditFilterHookRunner.php
+++ b/extensions/Wikibase/repo/includes/Hooks/EditFilterHookRunner.php
@@ -6,7 +6,7 @@
 use Hooks;
 use IContextSource;
 use InvalidArgumentException;
-use RequestContext;
+use MutableContext;
 use RuntimeException;
 use Status;
 use Title;
@@ -38,26 +38,20 @@
        private $entityContentFactory;
 
        /**
-        * @var RequestContext|DerivativeContext
+        * @var IContextSource
         */
        private $context;
 
+       /**
+        * @param EntityTitleLookup $titleLookup
+        * @param EntityContentFactory $entityContentFactory
+        * @param IContextSource $context
+        */
        public function __construct(
                EntityTitleLookup $titleLookup,
                EntityContentFactory $entityContentFactory,
-               $context = null
+               IContextSource $context
        ) {
-               if ( $context !== null
-                       && !( $context instanceof RequestContext )
-                       && !( $context instanceof DerivativeContext ) ) {
-                       throw new InvalidArgumentException( '$context must be 
an instance of RequestContext'
-                               . ' or DerivativeContext' );
-               }
-
-               if ( $context === null ) {
-                       $context = RequestContext::getMain();
-               }
-
                $this->titleLookup = $titleLookup;
                $this->entityContentFactory = $entityContentFactory;
                $this->context = $context;
@@ -117,7 +111,7 @@
         * @param EntityId|null $entityId
         * @param string $entityType
         *
-        * @return IContextSource
+        * @return MutableContext
         */
        private function getContextForEditFilter( EntityId $entityId = null, 
$entityType ) {
                if ( $entityId !== null ) {
@@ -139,6 +133,12 @@
                        $title = Title::makeTitle( $namespace, 'New' . ucfirst( 
$entityType ) );
                }
 
+               if ( !( $context instanceof MutableContext ) ) {
+                       wfLogWarning( '$context is not an instanceof 
MutableContext.' );
+
+                       $context = new DerivativeContext( $context );
+               }
+
                $context->setTitle( $title );
                $context->setWikiPage( new WikiPage( $title ) );
 
diff --git 
a/extensions/Wikibase/repo/includes/Interactors/ItemMergeInteractor.php 
b/extensions/Wikibase/repo/includes/Interactors/ItemMergeInteractor.php
index ffda49f..ed11efe 100644
--- a/extensions/Wikibase/repo/includes/Interactors/ItemMergeInteractor.php
+++ b/extensions/Wikibase/repo/includes/Interactors/ItemMergeInteractor.php
@@ -3,6 +3,7 @@
 namespace Wikibase\Repo\Interactors;
 
 use User;
+use WatchedItem;
 use Wikibase\ChangeOp\ChangeOpException;
 use Wikibase\ChangeOp\ChangeOpsMerge;
 use Wikibase\ChangeOp\MergeChangeOpsFactory;
@@ -14,6 +15,7 @@
 use Wikibase\EntityContent;
 use Wikibase\Lib\Store\EntityRevisionLookup;
 use Wikibase\Lib\Store\EntityStore;
+use Wikibase\Lib\Store\EntityTitleLookup;
 use Wikibase\Lib\Store\StorageException;
 use Wikibase\Lib\Store\RevisionedUnresolvedRedirectException;
 use Wikibase\Repo\Store\EntityPermissionChecker;
@@ -66,6 +68,11 @@
        private $interactorRedirect;
 
        /**
+        * @var EntityTitleLookup
+        */
+       private $entityTitleLookup;
+
+       /**
         * @param MergeChangeOpsFactory $changeOpFactory
         * @param EntityRevisionLookup $entityRevisionLookup
         * @param EntityStore $entityStore
@@ -73,6 +80,7 @@
         * @param SummaryFormatter $summaryFormatter
         * @param User $user
         * @param RedirectCreationInteractor $interactorRedirect
+        * @param EntityTitleLookup $entityTitleLookup
         */
        public function __construct(
                MergeChangeOpsFactory $changeOpFactory,
@@ -81,7 +89,8 @@
                EntityPermissionChecker $permissionChecker,
                SummaryFormatter $summaryFormatter,
                User $user,
-               RedirectCreationInteractor $interactorRedirect
+               RedirectCreationInteractor $interactorRedirect,
+               EntityTitleLookup $entityTitleLookup
        ) {
 
                $this->changeOpFactory = $changeOpFactory;
@@ -91,6 +100,7 @@
                $this->summaryFormatter = $summaryFormatter;
                $this->user = $user;
                $this->interactorRedirect = $interactorRedirect;
+               $this->entityTitleLookup = $entityTitleLookup;
        }
 
        /**
@@ -182,6 +192,7 @@
                }
 
                $result = $this->attemptSaveMerge( $fromItem, $toItem, 
$summary, $bot );
+               $this->updateWatchlistEntries( $fromId, $toId );
 
                $redirected = false;
 
@@ -305,4 +316,15 @@
                }
        }
 
+       /**
+        * @param ItemId $fromId
+        * @param ItemId $toId
+        */
+       private function updateWatchlistEntries( ItemId $fromId, ItemId $toId ) 
{
+               $fromTitle = $this->entityTitleLookup->getTitleForId( $fromId );
+               $toTitle = $this->entityTitleLookup->getTitleForId( $toId );
+
+               WatchedItem::duplicateEntries( $fromTitle, $toTitle );
+       }
+
 }
diff --git 
a/extensions/Wikibase/repo/includes/Notifications/ChangeNotificationSender.php 
b/extensions/Wikibase/repo/includes/Notifications/ChangeNotificationSender.php
index f04f0d0..a8eda93 100644
--- 
a/extensions/Wikibase/repo/includes/Notifications/ChangeNotificationSender.php
+++ 
b/extensions/Wikibase/repo/includes/Notifications/ChangeNotificationSender.php
@@ -17,8 +17,8 @@
        /**
         * Notifies the client wiki of the given changes.
         *
-        * @param string   $siteID:  The client wiki's global site identifier, 
as used by sitelinks.
-        * @param Change[] $changes: The list of changes to post to the wiki.
+        * @param string $siteID The client wiki's global site identifier, as 
used by sitelinks.
+        * @param Change[] $changes The list of changes to post to the wiki.
         */
        public function sendNotification( $siteID, array $changes );
 
diff --git 
a/extensions/Wikibase/repo/includes/Notifications/JobQueueChangeNotificationSender.php
 
b/extensions/Wikibase/repo/includes/Notifications/JobQueueChangeNotificationSender.php
index 0cf55db..1b523e3 100644
--- 
a/extensions/Wikibase/repo/includes/Notifications/JobQueueChangeNotificationSender.php
+++ 
b/extensions/Wikibase/repo/includes/Notifications/JobQueueChangeNotificationSender.php
@@ -38,8 +38,8 @@
        /**
         * @see ChangeNotificationSender::sendNotification
         *
-        * @param string   $siteID:  The client wiki's global site identifier, 
as used by sitelinks.
-        * @param Change[] $changes: The list of changes to post to the wiki.
+        * @param string $siteID The client wiki's global site identifier, as 
used by sitelinks.
+        * @param Change[] $changes The list of changes to post to the wiki.
         */
        public function sendNotification( $siteID, array $changes ) {
                if ( empty( $changes ) ) {
diff --git a/extensions/Wikibase/repo/includes/WikibaseRepo.php 
b/extensions/Wikibase/repo/includes/WikibaseRepo.php
index 3297c5f..9d21949 100644
--- a/extensions/Wikibase/repo/includes/WikibaseRepo.php
+++ b/extensions/Wikibase/repo/includes/WikibaseRepo.php
@@ -12,6 +12,7 @@
 use IContextSource;
 use Language;
 use MediaWiki\Site\MediaWikiPageNameNormalizer;
+use RequestContext;
 use Serializers\Serializer;
 use SiteSQLStore;
 use SiteStore;
@@ -19,39 +20,39 @@
 use User;
 use ValueFormatters\FormatterOptions;
 use ValueFormatters\ValueFormatter;
-use Wikibase\DataModel\Entity\PropertyId;
-use Wikibase\DataModel\Services\Lookup\InProcessCachingDataTypeLookup;
-use Wikibase\Lib\DataTypeDefinitions;
 use Wikibase\ChangeOp\ChangeOpFactoryProvider;
 use Wikibase\DataModel\DeserializerFactory;
-use Wikibase\DataModel\Entity\Item;
-use Wikibase\DataModel\Entity\Property;
-use Wikibase\DataModel\Services\Diff\EntityDiffer;
 use Wikibase\DataModel\Entity\BasicEntityIdParser;
 use Wikibase\DataModel\Entity\DispatchingEntityIdParser;
 use Wikibase\DataModel\Entity\EntityIdParser;
+use Wikibase\DataModel\Entity\Item;
+use Wikibase\DataModel\Entity\Property;
+use Wikibase\DataModel\Entity\PropertyId;
+use Wikibase\DataModel\Services\Diff\EntityDiffer;
 use Wikibase\DataModel\Services\EntityId\SuffixEntityIdParser;
 use Wikibase\DataModel\Services\Lookup\EntityLookup;
 use Wikibase\DataModel\Services\Lookup\EntityRetrievingDataTypeLookup;
+use Wikibase\DataModel\Services\Lookup\InProcessCachingDataTypeLookup;
 use Wikibase\DataModel\Services\Lookup\PropertyDataTypeLookup;
 use Wikibase\DataModel\Services\Lookup\TermLookup;
 use Wikibase\DataModel\Services\Statement\GuidGenerator;
 use Wikibase\DataModel\Services\Statement\StatementGuidParser;
 use Wikibase\DataModel\Services\Statement\StatementGuidValidator;
+use Wikibase\DataModel\Services\Term\TermBuffer;
 use Wikibase\EditEntityFactory;
 use Wikibase\EntityFactory;
-use Wikibase\Lib\WikibaseSnakFormatterBuilders;
-use Wikibase\Repo\ParserOutput\EntityParserOutputGeneratorFactory;
 use Wikibase\InternalSerialization\DeserializerFactory as 
InternalDeserializerFactory;
 use Wikibase\InternalSerialization\SerializerFactory as 
InternalSerializerFactory;
 use Wikibase\LabelDescriptionDuplicateDetector;
 use Wikibase\LanguageFallbackChainFactory;
 use Wikibase\Lib\Changes\EntityChangeFactory;
 use Wikibase\Lib\ContentLanguages;
+use Wikibase\Lib\DataTypeDefinitions;
 use Wikibase\Lib\EntityIdLinkFormatter;
 use Wikibase\Lib\EntityIdPlainLinkFormatter;
 use Wikibase\Lib\EntityIdValueFormatter;
 use Wikibase\Lib\FormatterLabelDescriptionLookupFactory;
+use Wikibase\Lib\Interactors\TermIndexSearchInteractor;
 use Wikibase\Lib\LanguageNameLookup;
 use Wikibase\Lib\MediaWikiContentLanguages;
 use Wikibase\Lib\OutputFormatSnakFormatterFactory;
@@ -66,16 +67,17 @@
 use Wikibase\Lib\Store\EntityTitleLookup;
 use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory;
 use Wikibase\Lib\UnionContentLanguages;
+use Wikibase\Lib\WikibaseSnakFormatterBuilders;
 use Wikibase\Lib\WikibaseValueFormatterBuilders;
-use Wikibase\Lib\Interactors\TermIndexSearchInteractor;
-use Wikibase\Rdf\ValueSnakRdfBuilderFactory;
 use Wikibase\PropertyInfoBuilder;
+use Wikibase\Rdf\ValueSnakRdfBuilderFactory;
 use Wikibase\Repo\Api\ApiHelperFactory;
 use Wikibase\Repo\CachingCommonsMediaFileNameLookup;
 use Wikibase\Repo\Content\EntityContentFactory;
 use Wikibase\Repo\Content\ItemHandler;
 use Wikibase\Repo\Content\PropertyHandler;
 use Wikibase\Repo\Hooks\EditFilterHookRunner;
+use Wikibase\Repo\Interactors\ItemMergeInteractor;
 use Wikibase\Repo\Interactors\RedirectCreationInteractor;
 use Wikibase\Repo\LinkedData\EntityDataFormatProvider;
 use Wikibase\Repo\Localizer\ChangeOpValidationExceptionLocalizer;
@@ -89,6 +91,7 @@
 use Wikibase\Repo\Notifications\ChangeTransmitter;
 use Wikibase\Repo\Notifications\DatabaseChangeTransmitter;
 use Wikibase\Repo\Notifications\HookChangeTransmitter;
+use Wikibase\Repo\ParserOutput\EntityParserOutputGeneratorFactory;
 use Wikibase\Repo\Store\EntityPermissionChecker;
 use Wikibase\Repo\Validators\EntityConstraintProvider;
 use Wikibase\Repo\Validators\SnakValidator;
@@ -100,7 +103,6 @@
 use Wikibase\Store;
 use Wikibase\Store\BufferingTermLookup;
 use Wikibase\Store\EntityIdLookup;
-use Wikibase\DataModel\Services\Term\TermBuffer;
 use Wikibase\StringNormalizer;
 use Wikibase\SummaryFormatter;
 use Wikibase\View\EntityViewFactory;
@@ -241,9 +243,14 @@
                Hooks::run( 'WikibaseRepoDataTypes', array( 
&$dataTypeDefinitions ) );
 
                if ( $instance === null ) {
+                       $settings = new SettingsArray( $wgWBRepoSettings );
+
                        $instance = new self(
-                               new SettingsArray( $wgWBRepoSettings ),
-                               new DataTypeDefinitions( $dataTypeDefinitions ),
+                               $settings,
+                               new DataTypeDefinitions(
+                                       $dataTypeDefinitions,
+                                       $settings->getSetting( 
'disabledDataTypes' )
+                               ),
                                $wgContLang
                        );
                }
@@ -520,11 +527,11 @@
        }
 
        /**
-        * @param IContextSource|null $context
+        * @param IContextSource $context
         *
         * @return EditFilterHookRunner
         */
-       private function newEditFilterHookRunner( IContextSource $context = 
null ) {
+       private function newEditFilterHookRunner( IContextSource $context ) {
                return new EditFilterHookRunner(
                        $this->getEntityTitleLookup(),
                        $this->getEntityContentFactory(),
@@ -1296,11 +1303,11 @@
        }
 
        /**
-        * @param IContextSource|null $context
+        * @param IContextSource $context
         *
         * @return ApiHelperFactory
         */
-       public function getApiHelperFactory( IContextSource $context = null ) {
+       public function getApiHelperFactory( IContextSource $context ) {
                return new ApiHelperFactory(
                        $this->getEntityTitleLookup(),
                        $this->getExceptionLocalizer(),
@@ -1319,6 +1326,10 @@
         * @return EditEntityFactory
         */
        public function newEditEntityFactory( IContextSource $context = null ) {
+               if ( $context === null ) {
+                       $context = RequestContext::getMain();
+               }
+
                return new EditEntityFactory(
                        $this->getEntityTitleLookup(),
                        $this->getEntityRevisionLookup( 'uncached' ),
@@ -1330,6 +1341,26 @@
        }
 
        /**
+        * @param IContextSource $context
+        *
+        * @return ItemMergeInteractor
+        */
+       public function newItemMergeInteractor( IContextSource $context ) {
+               $user = $context->getUser();
+
+               return new ItemMergeInteractor(
+                       
$this->getChangeOpFactoryProvider()->getMergeChangeOpFactory(),
+                       $this->getEntityRevisionLookup( 'uncached' ),
+                       $this->getEntityStore(),
+                       $this->getEntityPermissionChecker(),
+                       $this->getSummaryFormatter(),
+                       $user,
+                       $this->newRedirectCreationInteractor( $user, $context ),
+                       $this->getEntityTitleLookup()
+               );
+       }
+
+       /**
         * @return EntityNamespaceLookup
         */
        public function getEntityNamespaceLookup() {
diff --git a/extensions/Wikibase/repo/includes/api/MergeItems.php 
b/extensions/Wikibase/repo/includes/api/MergeItems.php
index 33c573a..083a4d2 100644
--- a/extensions/Wikibase/repo/includes/api/MergeItems.php
+++ b/extensions/Wikibase/repo/includes/api/MergeItems.php
@@ -65,15 +65,7 @@
                        $wikibaseRepo->getEntityIdParser(),
                        $apiHelperFactory->getErrorReporter( $this ),
                        $apiHelperFactory->getResultBuilder( $this ),
-                       new ItemMergeInteractor(
-                               
$wikibaseRepo->getChangeOpFactoryProvider()->getMergeChangeOpFactory(),
-                               $wikibaseRepo->getEntityRevisionLookup( 
'uncached' ),
-                               $wikibaseRepo->getEntityStore(),
-                               $wikibaseRepo->getEntityPermissionChecker(),
-                               $wikibaseRepo->getSummaryFormatter(),
-                               $this->getUser(),
-                               $wikibaseRepo->newRedirectCreationInteractor( 
$this->getUser(), $this->getContext() )
-                       )
+                       $wikibaseRepo->newItemMergeInteractor( 
$this->getContext() )
                );
        }
 
diff --git a/extensions/Wikibase/repo/includes/specials/SpecialMergeItems.php 
b/extensions/Wikibase/repo/includes/specials/SpecialMergeItems.php
index 47ec779..475622e 100644
--- a/extensions/Wikibase/repo/includes/specials/SpecialMergeItems.php
+++ b/extensions/Wikibase/repo/includes/specials/SpecialMergeItems.php
@@ -59,15 +59,7 @@
                        new TokenCheckInteractor(
                                $this->getUser()
                        ),
-                       new ItemMergeInteractor(
-                               
$wikibaseRepo->getChangeOpFactoryProvider()->getMergeChangeOpFactory(),
-                               $wikibaseRepo->getEntityRevisionLookup( 
'uncached' ),
-                               $wikibaseRepo->getEntityStore(),
-                               $wikibaseRepo->getEntityPermissionChecker(),
-                               $wikibaseRepo->getSummaryFormatter(),
-                               $this->getUser(),
-                               $wikibaseRepo->newRedirectCreationInteractor( 
$this->getUser(), $this->getContext() )
-                       )
+                       $wikibaseRepo->newItemMergeInteractor( 
$this->getContext() )
                );
        }
 
diff --git 
a/extensions/Wikibase/repo/includes/store/ChangeDispatchCoordinator.php 
b/extensions/Wikibase/repo/includes/store/ChangeDispatchCoordinator.php
index ce1211d..babda7d 100644
--- a/extensions/Wikibase/repo/includes/store/ChangeDispatchCoordinator.php
+++ b/extensions/Wikibase/repo/includes/store/ChangeDispatchCoordinator.php
@@ -73,7 +73,7 @@
         * Its structure must be the one returned by selectClient(), with the 
chd_seen and
         * field updated to reflect any dispatch activity.
         *
-        * @param array $state  : associative array representing the client 
wiki's state after the
+        * @param array $state Associative array representing the client wiki's 
state after the
         *                      update pass.
         *
         * @throws Exception
diff --git a/extensions/Wikibase/repo/includes/store/sql/DispatchStats.php 
b/extensions/Wikibase/repo/includes/store/sql/DispatchStats.php
index fc107ea..1fd77a9 100644
--- a/extensions/Wikibase/repo/includes/store/sql/DispatchStats.php
+++ b/extensions/Wikibase/repo/includes/store/sql/DispatchStats.php
@@ -33,7 +33,7 @@
         * Loads the current dispatch status from the database and calculates 
statistics.
         * Before this method is called, the behavior of the getters is 
undefined.
         *
-        * @param int|string $now: Timestamp to consider the current time. 
Mostly useful for testing.
+        * @param int|string $now Timestamp to consider the current time. 
Mostly useful for testing.
         *
         * @return int the number of client wikis.
         */
diff --git 
a/extensions/Wikibase/repo/includes/store/sql/SqlChangeDispatchCoordinator.php 
b/extensions/Wikibase/repo/includes/store/sql/SqlChangeDispatchCoordinator.php
index aca8d36..ff29bb9 100644
--- 
a/extensions/Wikibase/repo/includes/store/sql/SqlChangeDispatchCoordinator.php
+++ 
b/extensions/Wikibase/repo/includes/store/sql/SqlChangeDispatchCoordinator.php
@@ -294,7 +294,7 @@
        }
 
        /**
-        * @param DatabaseBase $db: the repo database connection to release for 
re-use.
+        * @param DatabaseBase $db The repo database connection to release for 
re-use.
         */
        private function releaseRepoMaster( DatabaseBase $db ) {
                $this->getRepoLB()->reuseConnection( $db );
@@ -556,7 +556,7 @@
         * Updates the given client wiki's entry in the dispatch table and
         * releases the global lock on that wiki.
         *
-        * @param array $state  : associative array representing the client 
wiki's state before the
+        * @param array $state Associative array representing the client wiki's 
state before the
         *                      update pass, as returned by selectWiki().
         *
         * @throws Exception
@@ -599,7 +599,7 @@
        /**
         * Determines the name of the global lock that should be used to lock 
the given client.
         *
-        * @param string $siteID: The site ID of the wiki to lock
+        * @param string $siteID The site ID of the wiki to lock
         *
         * @return string the lock name to use.
         */
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/Interactors/ItemMergeInteractorTest.php
 
b/extensions/Wikibase/repo/tests/phpunit/includes/Interactors/ItemMergeInteractorTest.php
index c1efb0e..ab2773d 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/Interactors/ItemMergeInteractorTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/Interactors/ItemMergeInteractorTest.php
@@ -2,10 +2,12 @@
 
 namespace Wikibase\Test\Interactors;
 
+use ContentHandler;
 use HashSiteStore;
 use Status;
 use TestSites;
 use User;
+use WatchedItem;
 use Wikibase\ChangeOp\MergeChangeOpsFactory;
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Entity\ItemId;
@@ -98,6 +100,22 @@
        }
 
        /**
+        * @return EntityTitleLookup
+        */
+       private function getEntityTitleLookup() {
+               $mock = $this->getMock( 'Wikibase\Lib\Store\EntityTitleLookup' 
);
+
+               $mock->expects( $this->any() )
+                       ->method( 'getTitleForId' )
+                       ->will( $this->returnCallback( function( EntityId $id ) 
{
+                               $contentHandler = 
ContentHandler::getForModelID( CONTENT_MODEL_WIKIBASE_ITEM );
+                               return $contentHandler->getTitleForId( $id );
+                       } ) );
+
+               return $mock;
+       }
+
+       /**
         * @param User|null $user
         *
         * @return ItemMergeInteractor
@@ -132,7 +150,8 @@
                                $user,
                                $this->getMockEditFilterHookRunner(),
                                $this->mockRepository
-                       )
+                       ),
+                       $this->getEntityTitleLookup()
                );
 
                return $interactor;
@@ -294,6 +313,9 @@
                        $ignoreConflicts = explode( '|', $ignoreConflicts );
                }
 
+               $watchedItem = $this->getWatchedItemForId( $fromId );
+               $watchedItem->addWatch();
+
                $interactor->mergeItems( $fromId, $toId, $ignoreConflicts, 
'CustomSummary' );
 
                $actualTo = $this->testHelper->getEntity( $toId );
@@ -307,6 +329,8 @@
                        $toRevId,
                        'summary for target item'
                );
+
+               $this->assertItemMergedIntoIsWatched( $toId );
        }
 
        private function assertRedirectWorks( $expectedFrom, $fromId, $toId ) {
@@ -324,6 +348,18 @@
                }
        }
 
+       private function assertItemMergedIntoIsWatched( ItemId $toId ) {
+               $watchedItem = $this->getWatchedItemForId( $toId );
+               $this->assertTrue( $watchedItem->isWatched(), 'Item merged into 
is being watched' );
+       }
+
+       private function getWatchedItemForId( ItemId $itemId ) {
+               return WatchedItem::fromUserTitle(
+                       User::newFromName( 'UTSysop' ),
+                       $this->getEntityTitleLookup()->getTitleForId( $itemId )
+               );
+       }
+
        public function mergeFailureProvider() {
                return array(
                        'missing from' => array( new ItemId( 'Q100' ), new 
ItemId( 'Q2' ), array(), 'no-such-entity' ),
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/LinkedData/EntityDataSerializationServiceTest.php
 
b/extensions/Wikibase/repo/tests/phpunit/includes/LinkedData/EntityDataSerializationServiceTest.php
index cdca0ab..c0ac38e 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/LinkedData/EntityDataSerializationServiceTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/LinkedData/EntityDataSerializationServiceTest.php
@@ -14,7 +14,6 @@
 use Wikibase\DataModel\Entity\Property;
 use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\DataModel\SerializerFactory;
-use Wikibase\DataModel\Services\Lookup\EntityLookup;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
 use Wikibase\EntityRevision;
 use Wikibase\RedirectRevision;
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/WikibaseRepoTest.php 
b/extensions/Wikibase/repo/tests/phpunit/includes/WikibaseRepoTest.php
index a8b71df..130254f 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/WikibaseRepoTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/WikibaseRepoTest.php
@@ -300,6 +300,16 @@
                $this->assertInstanceOf( 'Wikibase\EditEntityFactory', $factory 
);
        }
 
+       public function testNewEditEntityFactory_withoutContextParam() {
+               $factory = $this->getWikibaseRepo()->newEditEntityFactory();
+               $this->assertInstanceOf( 'Wikibase\EditEntityFactory', $factory 
);
+       }
+
+       public function testNewItemMergeInteractor() {
+               $interactor = $this->getWikibaseRepo()->newItemMergeInteractor( 
new RequestContext() );
+               $this->assertInstanceOf( 
'Wikibase\Repo\Interactors\ItemMergeInteractor', $interactor );
+       }
+
        public function testGetTermLookup() {
                $service = $this->getWikibaseRepo()->getTermLookup();
                $this->assertInstanceOf( 
'Wikibase\DataModel\Services\Lookup\TermLookup', $service );
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/api/MergeItemsTest.php 
b/extensions/Wikibase/repo/tests/phpunit/includes/api/MergeItemsTest.php
index f98113b..736e13b 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/api/MergeItemsTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/MergeItemsTest.php
@@ -11,11 +11,15 @@
 use User;
 use Wikibase\ChangeOp\ChangeOpFactoryProvider;
 use Wikibase\DataModel\Entity\EntityRedirect;
-use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\Entity\BasicEntityIdParser;
+use Wikibase\DataModel\Entity\Item;
+use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\DataModel\Entity\Property;
 use Wikibase\DataModel\Services\Statement\GuidGenerator;
+use Wikibase\Lib\Store\EntityTitleLookup;
 use Wikibase\Repo\Api\ApiErrorReporter;
 use Wikibase\Repo\Api\MergeItems;
+use Wikibase\Repo\Content\EntityContentFactory;
 use Wikibase\Repo\Interactors\ItemMergeInteractor;
 use Wikibase\Repo\Interactors\RedirectCreationInteractor;
 use Wikibase\Repo\Store\EntityPermissionChecker;
@@ -123,6 +127,18 @@
        }
 
        /**
+        * @return EntityTitleLookup
+        */
+       private function getEntityTitleLookup() {
+               $contentModelMappings = array(
+                       Item::ENTITY_TYPE => CONTENT_MODEL_WIKIBASE_ITEM,
+                       Property::ENTITY_TYPE => CONTENT_MODEL_WIKIBASE_PROPERTY
+               );
+
+               return new EntityContentFactory( $contentModelMappings );
+       }
+
+       /**
         * @param MergeItems $module
         * @param EntityRedirect|null $expectedRedirect
         */
@@ -161,7 +177,8 @@
                                $this->getPermissionCheckers(),
                                $wikibaseRepo->getSummaryFormatter(),
                                $module->getUser(),
-                               $this->getMockRedirectCreationInteractor( 
$expectedRedirect )
+                               $this->getMockRedirectCreationInteractor( 
$expectedRedirect ),
+                               $this->getEntityTitleLookup()
                        )
                );
        }
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/specials/SpecialMergeItemsTest.php
 
b/extensions/Wikibase/repo/tests/phpunit/includes/specials/SpecialMergeItemsTest.php
index f15e5c6..55e2180 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/specials/SpecialMergeItemsTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/specials/SpecialMergeItemsTest.php
@@ -12,7 +12,11 @@
 use User;
 use Wikibase\ChangeOp\MergeChangeOpsFactory;
 use Wikibase\DataModel\Entity\EntityId;
+use Wikibase\DataModel\Entity\Item;
+use Wikibase\DataModel\Entity\Property;
 use Wikibase\Lib\MessageException;
+use Wikibase\Lib\Store\EntityTitleLookup;
+use Wikibase\Repo\Content\EntityContentFactory;
 use Wikibase\Repo\Hooks\EditFilterHookRunner;
 use Wikibase\Repo\Interactors\ItemMergeException;
 use Wikibase\Repo\Interactors\ItemMergeInteractor;
@@ -98,6 +102,18 @@
        }
 
        /**
+        * @return EntityTitleLookup
+        */
+       private function getEntityTitleLookup() {
+               $contentModelMappings = array(
+                       Item::ENTITY_TYPE => CONTENT_MODEL_WIKIBASE_ITEM,
+                       Property::ENTITY_TYPE => CONTENT_MODEL_WIKIBASE_PROPERTY
+               );
+
+               return new EntityContentFactory( $contentModelMappings );
+       }
+
+       /**
         * @param SpecialMergeItems $page
         * @param User $user
         */
@@ -153,7 +169,8 @@
                                                $user,
                                                
$this->getMockEditFilterHookRunner(),
                                                $this->mockRepository
-                               )
+                               ),
+                               $this->getEntityTitleLookup()
                        )
                );
        }
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index b687d6d..dbe8e49 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1236,12 +1236,12 @@
         "source": {
             "type": "git",
             "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-            "reference": "a898b774afea645b3c17330723294fc6dd359ad4"
+            "reference": "2657287244ce617a9525cc4222a0e54d4b06e002"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/a898b774afea645b3c17330723294fc6dd359ad4";,
-            "reference": "a898b774afea645b3c17330723294fc6dd359ad4",
+            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/2657287244ce617a9525cc4222a0e54d4b06e002";,
+            "reference": "2657287244ce617a9525cc4222a0e54d4b06e002",
             "shasum": ""
         },
         "require": {
@@ -1273,7 +1273,7 @@
             "jakub-onderka/php-parallel-lint": "0.9.2",
             "mediawiki/mediawiki-codesniffer": "0.4.0|0.5.0"
         },
-        "time": "2016-01-11 21:54:58",
+        "time": "2016-01-13 08:07:49",
         "type": "mediawiki-extension",
         "installation-source": "dist",
         "autoload": {
@@ -1407,7 +1407,7 @@
         "source": {
             "type": "git",
             "url": 
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityExternalValidation";,
-            "reference": "a69f33f6fa1820a063c3c006f1dc20ba6db9a2a4"
+            "reference": "17b1d8644a10776ecf0921ab69d743763896a032"
         },
         "require": {
             "php": ">=5.3.0",
@@ -1420,7 +1420,7 @@
             "phpunit/phpunit": "~3.7,>=3.7.37",
             "satooshi/php-coveralls": "dev-master"
         },
-        "time": "2016-01-02 00:03:11",
+        "time": "2016-01-12 21:49:33",
         "type": "mediawiki-extension",
         "installation-source": "source",
         "autoload": {

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia83ce5a9811f241ec1f672518851ffa3a4a71f38
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