* @return {string} Parsed message
*/
parser: function () {
- var text;
- if ( mw.config.get( 'wgUserLanguage' ) === 'qqx' ) {
+ var text = this.map.get( this.key );
+ if (
+ mw.config.get( 'wgUserLanguage' ) === 'qqx' &&
+ ( !text || text === '(' + this.key + ')' )
+ ) {
text = '(' + this.key + '$*)';
- } else {
- text = this.map.get( this.key );
}
return mw.format.apply( null, [ text ].concat( this.parameters ) );
},
var wikiText;
if ( !Object.prototype.hasOwnProperty.call( this.astCache, key ) ) {
- if ( mw.config.get( 'wgUserLanguage' ) === 'qqx' ) {
+ wikiText = this.settings.messages.get( key );
+ if (
+ mw.config.get( 'wgUserLanguage' ) === 'qqx' &&
+ ( !wikiText || wikiText === '(' + key + ')' )
+ ) {
wikiText = '(' + key + '$*)';
- } else {
- wikiText = this.settings.messages.get( key );
- if ( typeof wikiText !== 'string' ) {
- wikiText = '⧼' + key + '⧽';
- }
+ } else if ( typeof wikiText !== 'string' ) {
+ wikiText = '⧼' + key + '⧽';
}
wikiText = mw.internalDoTransformFormatForQqx( wikiText, replacements );
this.astCache[ key ] = this.wikiTextToAst( wikiText );
);
mw.config.set( 'wgUserLanguage', 'qqx' );
+
$bar = $( '<b>' ).text( 'bar' );
- assert.strictEqual( mw.message( 'foo', $bar, 'baz' ).parse(), '(foo: <b>bar</b>, baz)', 'qqx message with parameters' );
+ mw.messages.set( 'qqx-message', '(qqx-message)' );
+ mw.messages.set( 'non-qqx-message', '<b>hello world</b>' );
+
+ assert.strictEqual( mw.message( 'missing-message' ).parse(), '(missing-message)', 'qqx message (missing)' );
+ assert.strictEqual( mw.message( 'missing-message', $bar, 'baz' ).parse(), '(missing-message: <b>bar</b>, baz)', 'qqx message (missing) with parameters' );
+ assert.strictEqual( mw.message( 'qqx-message' ).parse(), '(qqx-message)', 'qqx message (defined)' );
+ assert.strictEqual( mw.message( 'qqx-message', $bar, 'baz' ).parse(), '(qqx-message: <b>bar</b>, baz)', 'qqx message (defined) with parameters' );
+ assert.strictEqual( mw.message( 'non-qqx-message' ).parse(), '<b>hello world</b>', 'non-qqx message in qqx mode' );
} );
QUnit.test( 'setParserDefaults', function ( assert ) {
);
mw.config.set( 'wgUserLanguage', 'qqx' );
- assert.strictEqual( mw.message( 'foo' ).plain(), '(foo)', 'qqx message' );
- assert.strictEqual( mw.message( 'foo', 'bar', 'baz' ).plain(), '(foo: bar, baz)', 'qqx message with parameters' );
+
+ mw.messages.set( 'qqx-message', '(qqx-message)' );
+ mw.messages.set( 'non-qqx-message', 'hello world' );
+
+ assert.strictEqual( mw.message( 'missing-message' ).plain(), '(missing-message)', 'qqx message (missing)' );
+ assert.strictEqual( mw.message( 'missing-message', 'bar', 'baz' ).plain(), '(missing-message: bar, baz)', 'qqx message (missing) with parameters' );
+ assert.strictEqual( mw.message( 'qqx-message' ).plain(), '(qqx-message)', 'qqx message (defined)' );
+ assert.strictEqual( mw.message( 'qqx-message', 'bar', 'baz' ).plain(), '(qqx-message: bar, baz)', 'qqx message (defined) with parameters' );
+ assert.strictEqual( mw.message( 'non-qqx-message' ).plain(), 'hello world', 'non-qqx message in qqx mode' );
} );
QUnit.test( 'mw.msg', function ( assert ) {