From: Amir E. Aharoni Date: Sat, 12 Sep 2015 09:59:38 +0000 (+0300) Subject: Set explicit direction to ApiHelp headers with module names X-Git-Tag: 1.31.0-rc.0~7129^2 X-Git-Url: https://git.cyclocoop.org/%7B%24admin_url%7Dmembres/modifier.php?a=commitdiff_plain;h=7b76fbfeedf9f9bc013e95f01184ec88a9321dec;p=lhc%2Fweb%2Fwiklou.git Set explicit direction to ApiHelp headers with module names Bug: T112364 Change-Id: I28e8e0cbbeb0ff0a41a06cb28fbda26d72725e59 --- diff --git a/includes/api/ApiHelp.php b/includes/api/ApiHelp.php index f7539ce2d1..0f0fbdc564 100644 --- a/includes/api/ApiHelp.php +++ b/includes/api/ApiHelp.php @@ -255,28 +255,43 @@ class ApiHelp extends ApiBase { } if ( $module->isMain() ) { - $header = $context->msg( 'api-help-main-header' )->parse(); + $headerContent = $context->msg( 'api-help-main-header' )->parse(); + $headerAttr = [ + 'class' => 'apihelp-header', + ]; } else { $name = $module->getModuleName(); - $header = $module->getParent()->getModuleManager()->getModuleGroup( $name ) . + $headerContent = $module->getParent()->getModuleManager()->getModuleGroup( $name ) . "=$name"; if ( $module->getModulePrefix() !== '' ) { - $header .= ' ' . + $headerContent .= ' ' . $context->msg( 'parentheses', $module->getModulePrefix() )->parse(); } + // Module names are always in English and not localized, + // so English language and direction must be set explicitly, + // otherwise parentheses will get broken in RTL wikis + $headerAttr = [ + 'class' => 'apihelp-header apihelp-module-name', + 'dir' => 'ltr', + 'lang' => 'en', + ]; } + + $headerAttr['id'] = $anchor; + $haveModules[$anchor] = [ 'toclevel' => count( $tocnumber ), 'level' => $level, 'anchor' => $anchor, - 'line' => $header, + 'line' => $headerContent, 'number' => implode( '.', $tocnumber ), 'index' => false, ]; if ( empty( $options['noheader'] ) ) { - $help['header'] .= Html::element( 'h' . min( 6, $level ), - [ 'id' => $anchor, 'class' => 'apihelp-header' ], - $header + $help['header'] .= Html::element( + 'h' . min( 6, $level ), + $headerAttr, + $headerContent ); } } else { diff --git a/resources/src/mediawiki/mediawiki.apihelp.css b/resources/src/mediawiki/mediawiki.apihelp.css index 7d7b413a10..a35ce7a1ce 100644 --- a/resources/src/mediawiki/mediawiki.apihelp.css +++ b/resources/src/mediawiki/mediawiki.apihelp.css @@ -3,6 +3,16 @@ margin-bottom: 0.1em; } +.apihelp-header.apihelp-module-name { + /* + * This element is explicitly set to dir="ltr" in HTML. + * Set explicit alignment so that CSSJanus will flip it to "right"; + * otherwise the alignment will be automatically set to "left" according + * to the element's direction, and this will have an inconsistent look. + */ + text-align: left; +} + div.apihelp-linktrail { font-size: smaller; }