jenkins-bot has submitted this change and it was merged.
Change subject: Apply dir and lang to the target language selector trigger
......................................................................
Apply dir and lang to the target language selector trigger
Before this patch, if a language with a different directionality
is selected as the target language, its name may be shown incorrectly.
This patch applies the correct lang and dir attributes to the element
that contains the language name so it would be displayed correctly.
Change-Id: Ib830a5856ec41ea795fa738e5eb58c40c09ce7d7
---
M resources/css/ext.translate.groupselector.css
M resources/js/ext.translate.special.translate.js
M specials/SpecialTranslate.php
3 files changed, 49 insertions(+), 8 deletions(-)
Approvals:
Nikerabbit: Looks good to me, approved
jenkins-bot: Verified
diff --git a/resources/css/ext.translate.groupselector.css
b/resources/css/ext.translate.groupselector.css
index bec55a1..6f02c0b 100644
--- a/resources/css/ext.translate.groupselector.css
+++ b/resources/css/ext.translate.groupselector.css
@@ -48,7 +48,10 @@
padding-top: 1.25em;
}
-.ext-translate-language-selector .uls:after {
+/* The triangle shaped down-pointing callout after the language name
+ * in the target language selector
+ */
+.ext-translate-language-selector:after {
margin-left: 4px;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
diff --git a/resources/js/ext.translate.special.translate.js
b/resources/js/ext.translate.special.translate.js
index 76ec11d..8eb6dee 100644
--- a/resources/js/ext.translate.special.translate.js
+++ b/resources/js/ext.translate.special.translate.js
@@ -102,18 +102,36 @@
},
changeLanguage: function ( language ) {
- var changes = {
- language: language
- };
+ var changes, targetDir, targetLangAttrib,
+ userLanguageCode = mw.config.get(
'wgUserLanguage' );
if ( !checkDirty() ) {
return;
}
- $( '.ext-translate-language-selector > .uls' ).text(
$.uls.data.getAutonym( language ) );
+ changes = {
+ language: language
+ };
+
+ if ( language === mw.config.get(
'wgTranslateDocumentationLanguageCode' ) ) {
+ targetLangAttrib = userLanguageCode;
+ targetDir = $.uls.data.getDir( userLanguageCode
);
+ } else {
+ targetLangAttrib = language;
+ targetDir = $.uls.data.getDir( language );
+ }
+
+ // Changes to attributes must also be reflected
+ // when the element is created on the server side
+ $( '.ext-translate-language-selector > .uls' )
+ .text( $.uls.data.getAutonym( language ) )
+ .attr( {
+ lang: targetLangAttrib,
+ dir: targetDir
+ } );
$( '.tux-messagelist' ).data( {
targetlangcode: language,
- targetlangdir: $.uls.data.getDir( language )
+ targetlangdir: targetDir
} );
mw.translate.changeUrl( changes );
diff --git a/specials/SpecialTranslate.php b/specials/SpecialTranslate.php
index 1a81b85..d591430 100644
--- a/specials/SpecialTranslate.php
+++ b/specials/SpecialTranslate.php
@@ -547,6 +547,22 @@
}
protected function tuxLanguageSelector() {
+ // Changes here must also be reflected when the language
+ // changes on the client side
+ global $wgLang, $wgTranslateDocumentationLanguageCode;
+ $targetLangCode = $this->options['language'];
+ if ( $this->options['language'] ===
$wgTranslateDocumentationLanguageCode ) {
+ // The name will be displayed in the UI language,
+ // so use for lang and dir
+ $targetLangCode = $wgLang->getCode();
+ $targetLangDir = $wgLang->getDir();
+ $targetLangName = $this->msg(
'translate-documentation-language' )->text();
+ } else {
+ $targetLangCode = $this->options['language'];
+ $targetLangDir = Language::factory(
$this->options['language'] )->getDir();
+ $targetLangName = Language::fetchLanguageName(
$this->options['language'] );
+ }
+
// No-break space is added for spacing after the label
// and to ensure separation of words (in Arabic, for example)
return Html::rawElement( 'div',
@@ -557,8 +573,12 @@
) .
' ' . // nbsp
Html::element( 'span',
- array( 'class' => 'uls' ),
- Language::fetchLanguageName(
$this->options['language'] )
+ array(
+ 'class' => 'uls',
+ 'lang' => $targetLangCode,
+ 'dir' => $targetLangDir,
+ ),
+ $targetLangName
)
);
}
--
To view, visit https://gerrit.wikimedia.org/r/62235
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ib830a5856ec41ea795fa738e5eb58c40c09ce7d7
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Amire80 <[email protected]>
Gerrit-Reviewer: Amire80 <[email protected]>
Gerrit-Reviewer: Nikerabbit <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits