Adrian Lang has uploaded a new change for review.
https://gerrit.wikimedia.org/r/172968
Change subject: Move getLanguageNameByCode out of wikibase.js
......................................................................
Move getLanguageNameByCode out of wikibase.js
Change-Id: I00ce9e98bb10e66c2654afa70fcd593b6c9f13d8
---
M lib/resources/Resources.php
M lib/resources/jquery.wikibase/resources.php
M lib/resources/wikibase.js
M lib/tests/qunit/wikibase.tests.js
M repo/resources/Resources.php
A repo/resources/wikibase.getLanguageNameByCode.js
M repo/tests/qunit/resources.php
A repo/tests/qunit/wikibase.getLanguageNameByCode.tests.js
8 files changed, 107 insertions(+), 82 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/68/172968/1
diff --git a/lib/resources/Resources.php b/lib/resources/Resources.php
index 5466f36..66088d0 100644
--- a/lib/resources/Resources.php
+++ b/lib/resources/Resources.php
@@ -179,7 +179,6 @@
);
if ( defined( 'ULS_VERSION' ) ) {
- $modules['wikibase']['dependencies'][] = 'ext.uls.mediawiki';
$modules['wikibase.Site']['dependencies'][] =
'ext.uls.mediawiki';
}
diff --git a/lib/resources/jquery.wikibase/resources.php
b/lib/resources/jquery.wikibase/resources.php
index 312fb0b..f242084 100644
--- a/lib/resources/jquery.wikibase/resources.php
+++ b/lib/resources/jquery.wikibase/resources.php
@@ -78,7 +78,6 @@
'jquery.wikibase.claimlistview',
'jquery.wikibase.listview',
'jquery.wikibase.toolbarcontroller',
- 'wikibase',
'wikibase.datamodel',
),
),
@@ -94,7 +93,6 @@
'jquery.wikibase.listview',
'jquery.wikibase.statementview',
'jquery.wikibase.toolbarcontroller',
- 'wikibase',
'wikibase.datamodel',
'wikibase.templates',
'wikibase.utilities',
@@ -134,8 +132,8 @@
'jquery.ui.TemplatedWidget',
'jquery.wikibase.edittoolbar',
'jquery.wikibase.toolbarcontroller',
- 'wikibase',
'wikibase.datamodel.Term',
+ 'wikibase.getLanguageNameByCode',
),
'messages' => array(
'wikibase-description-edit-placeholder',
@@ -182,9 +180,9 @@
'jquery.wikibase.toolbarcontroller',
'jquery.wikibase.sitelinkgrouplistview',
'jquery.wikibase.statementview',
- 'wikibase',
'wikibase.datamodel.MultiTerm',
'wikibase.datamodel.Term',
+ 'wikibase.getLanguageNameByCode',
'wikibase.templates',
),
'messages' => array(
@@ -217,9 +215,9 @@
'themes/default/jquery.wikibase.fingerprintlistview.css',
),
'dependencies' => array(
- 'wikibase',
'jquery.ui.TemplatedWidget',
'jquery.wikibase.fingerprintview',
+ 'wikibase.getLanguageNameByCode',
),
'messages' => array(
'wikibase-fingerprintview-input-help-message',
@@ -240,7 +238,7 @@
'jquery.wikibase.labelview',
'jquery.wikibase.toolbarcontroller',
'mediawiki.Title',
- 'wikibase',
+ 'wikibase.getLanguageNameByCode',
),
'messages' => array(
'wikibase-fingerprintview-input-help-message',
@@ -258,8 +256,8 @@
'jquery.ui.TemplatedWidget',
'jquery.wikibase.edittoolbar',
'jquery.wikibase.toolbarcontroller',
- 'wikibase',
'wikibase.datamodel.Term',
+ 'wikibase.getLanguageNameByCode',
),
'messages' => array(
'parentheses',
@@ -357,7 +355,6 @@
'jquery.wikibase.listview',
'jquery.wikibase.sitelinkview',
'jquery.wikibase.toolbarcontroller',
- 'wikibase',
'wikibase.datamodel',
'wikibase.sites',
'wikibase.templates',
diff --git a/lib/resources/wikibase.js b/lib/resources/wikibase.js
index 709750b..7073cbe 100644
--- a/lib/resources/wikibase.js
+++ b/lib/resources/wikibase.js
@@ -9,46 +9,3 @@
this.wikibase = this.wikibase || {};
this.wb = this.wikibase;
-
-( function ( wb, mw, $ ) {
- 'use strict';
-
- /**
- * Tries to retrieve Universal Language Selector's set of languages.
- *
- * TODO: Further decouple this from ULS. Make the languages known to
Wikibase a config thing
- * and use ULS as source for that language information, then inject it
into Wikibase upon
- * initialization. This way, everything beyond extension
initialization doesn't have to know
- * about ULS.
- *
- * @return {Object} Set of languages (empty object when ULS is not
available)
- */
- wb.getLanguages = function() {
- return $.uls && $.uls.data.languages || {};
- };
-
- /**
- * Returns the name of a language in that language, if available
(currently requires ULS).
- * Falls back to the language code.
- *
- * @param {string} langCode
- * @return string
- */
- wb.getNativeLanguageName = function( langCode ) {
- var language = wb.getLanguages()[ langCode ];
- return language && language[2] || langCode;
- };
-
- /**
- * Returns the name of a language in the UI language, if available
(currently requires ULS).
- * Falls back to getNativeLanguageName, which may fall back to the
language code.
- *
- * @param {string} langCode
- * @return string
- */
- wb.getLanguageNameByCode = function( langCode ) {
- var ulsLanguages = mw.config.get( 'wgULSLanguages' );
- return ulsLanguages && ulsLanguages[langCode] ||
wb.getNativeLanguageName( langCode );
- };
-
-} )( wikibase, mediaWiki, jQuery );
diff --git a/lib/tests/qunit/wikibase.tests.js
b/lib/tests/qunit/wikibase.tests.js
index 2202925..eed754e 100644
--- a/lib/tests/qunit/wikibase.tests.js
+++ b/lib/tests/qunit/wikibase.tests.js
@@ -26,34 +26,4 @@
);
} );
- QUnit.test( 'wikibase.getLanguages()', 1, function( assert ) {
- assert.ok(
- $.isPlainObject( wb.getLanguages() ),
- 'getLanguages() returns a plain object'
- );
- } );
-
- QUnit.test( 'wikibase.getLanguageNameByCode()', 2, function( assert ) {
- // TODO: Don't assume global state, control what languages are
available for this test!
- if( $.uls !== undefined ) {
- assert.strictEqual(
- wb.getLanguageNameByCode( 'de' ),
- 'Deutsch',
- 'getLanguageNameByCode() returns language name.'
- );
- } else {
- assert.strictEqual(
- wb.getLanguageNameByCode( 'de' ),
- 'de',
- 'getLanguageNameByCode() returns language code
(ULS not loaded).'
- );
- }
-
- assert.strictEqual(
- wb.getLanguageNameByCode( 'nonexistantlanguagecode' ),
- 'nonexistantlanguagecode',
- 'getLanguageNameByCode() returns language code if
unknown code.'
- );
- } );
-
}( wikibase, jQuery, QUnit ) );
diff --git a/repo/resources/Resources.php b/repo/resources/Resources.php
index f6bcb66..8fe7fa7 100644
--- a/repo/resources/Resources.php
+++ b/repo/resources/Resources.php
@@ -50,6 +50,15 @@
),
),
+ 'wikibase.getLanguageNameByCode' => $moduleTemplate + array(
+ 'scripts' => array(
+ 'wikibase.getLanguageNameByCode.js'
+ ),
+ 'dependencies' => array(
+ 'wikibase'
+ )
+ ),
+
'wikibase.templates' => $moduleTemplate + array(
'class' => 'Wikibase\TemplateModule',
'scripts' => 'templates.js',
@@ -175,6 +184,7 @@
);
if ( defined( 'ULS_VERSION' ) ) {
+ $modules['wikibase.getLanguageNameByCode']['dependencies'][] =
'ext.uls.mediawiki';
$modules['wikibase.initTermBox']['dependencies'][] =
'ext.uls.displaysettings';
$modules['wikibase.initTermBox']['dependencies'][] =
'ext.uls.mediawiki';
$modules['wikibase.special.itemDisambiguation']['dependencies'][] =
'ext.uls.mediawiki';
diff --git a/repo/resources/wikibase.getLanguageNameByCode.js
b/repo/resources/wikibase.getLanguageNameByCode.js
new file mode 100644
index 0000000..ce40742
--- /dev/null
+++ b/repo/resources/wikibase.getLanguageNameByCode.js
@@ -0,0 +1,49 @@
+/**
+ * JavaScript for 'wikibase' extension
+ * @see https://www.mediawiki.org/wiki/Extension:Wikibase
+ *
+ * @licence GNU GPL v2+
+ * @author Daniel Werner < daniel.werner at wikimedia.de >
+ */
+( function ( wb, mw, $ ) {
+ 'use strict';
+
+ /**
+ * Tries to retrieve Universal Language Selector's set of languages.
+ *
+ * TODO: Further decouple this from ULS. Make the languages known to
Wikibase a config thing
+ * and use ULS as source for that language information, then inject it
into Wikibase upon
+ * initialization. This way, everything beyond extension
initialization doesn't have to know
+ * about ULS.
+ *
+ * @return {Object} Set of languages (empty object when ULS is not
available)
+ */
+ var getLanguages = function() {
+ return $.uls && $.uls.data.languages || {};
+ };
+
+ /**
+ * Returns the name of a language in that language, if available
(currently requires ULS).
+ * Falls back to the language code.
+ *
+ * @param {string} langCode
+ * @return string
+ */
+ var getNativeLanguageName = function( langCode ) {
+ var language = getLanguages()[ langCode ];
+ return language && language[2] || langCode;
+ };
+
+ /**
+ * Returns the name of a language in the UI language, if available
(currently requires ULS).
+ * Falls back to getNativeLanguageName, which may fall back to the
language code.
+ *
+ * @param {string} langCode
+ * @return string
+ */
+ wb.getLanguageNameByCode = function( langCode ) {
+ var ulsLanguages = mw.config.get( 'wgULSLanguages' );
+ return ulsLanguages && ulsLanguages[langCode] ||
getNativeLanguageName( langCode );
+ };
+
+} )( wikibase, mediaWiki, jQuery );
diff --git a/repo/tests/qunit/resources.php b/repo/tests/qunit/resources.php
index 4f49c1a..26c8d60 100644
--- a/repo/tests/qunit/resources.php
+++ b/repo/tests/qunit/resources.php
@@ -36,6 +36,15 @@
),
),
+ 'wikibase.getLanguageNameByCode.tests' => $moduleBase + array(
+ 'scripts' => array(
+ 'wikibase.getLanguageNameByCode.tests.js'
+ ),
+ 'dependencies' => array(
+ 'wikibase.getLanguageNameByCode'
+ )
+ ),
+
);
return array_merge(
diff --git a/repo/tests/qunit/wikibase.getLanguageNameByCode.tests.js
b/repo/tests/qunit/wikibase.getLanguageNameByCode.tests.js
new file mode 100644
index 0000000..ff8fac6
--- /dev/null
+++ b/repo/tests/qunit/wikibase.getLanguageNameByCode.tests.js
@@ -0,0 +1,34 @@
+/**
+ * @licence GNU GPL v2+
+ * @author Daniel Werner < [email protected] >
+ */
+
+( function( wb, $, QUnit ) {
+ 'use strict';
+
+ QUnit.module( 'wikibase.getLanguageNameByCode' );
+
+ QUnit.test( 'wikibase.getLanguageNameByCode()', 2, function( assert ) {
+ // TODO: Don't assume global state, control what languages are
available for this test!
+ if( $.uls !== undefined ) {
+ assert.strictEqual(
+ wb.getLanguageNameByCode( 'de' ),
+ 'Deutsch',
+ 'getLanguageNameByCode() returns language name.'
+ );
+ } else {
+ assert.strictEqual(
+ wb.getLanguageNameByCode( 'de' ),
+ 'de',
+ 'getLanguageNameByCode() returns language code
(ULS not loaded).'
+ );
+ }
+
+ assert.strictEqual(
+ wb.getLanguageNameByCode( 'nonexistantlanguagecode' ),
+ 'nonexistantlanguagecode',
+ 'getLanguageNameByCode() returns language code if
unknown code.'
+ );
+ } );
+
+}( wikibase, jQuery, QUnit ) );
--
To view, visit https://gerrit.wikimedia.org/r/172968
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I00ce9e98bb10e66c2654afa70fcd593b6c9f13d8
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Adrian Lang <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits