jenkins-bot has submitted this change and it was merged.
Change subject: Emit lang and dir for fallback terms in header
......................................................................
Emit lang and dir for fallback terms in header
Change-Id: I004950863101b9a5d20970b299efbef125cbe1c8
---
M repo/includes/ParserOutput/EntityParserOutputGenerator.php
M repo/includes/ParserOutput/FallbackHintHtmlTermRenderer.php
M repo/tests/phpunit/includes/ParserOutput/FallbackHintHtmlTermRendererTest.php
M view/src/HtmlTermRenderer.php
4 files changed, 41 insertions(+), 6 deletions(-)
Approvals:
Daniel Kinzler: Looks good to me, approved
jenkins-bot: Verified
diff --git a/repo/includes/ParserOutput/EntityParserOutputGenerator.php
b/repo/includes/ParserOutput/EntityParserOutputGenerator.php
index 149b161..ac15692 100644
--- a/repo/includes/ParserOutput/EntityParserOutputGenerator.php
+++ b/repo/includes/ParserOutput/EntityParserOutputGenerator.php
@@ -284,17 +284,21 @@
$this->textProvider
) : new EmptyEditSectionGenerator();
+ $languageDirectionalityLookup = new
MediaWikiLanguageDirectionalityLookup();
$languageNameLookup = new LanguageNameLookup(
$this->languageCode );
$termsListView = new TermsListView(
TemplateFactory::getDefaultInstance(),
$languageNameLookup,
new MediaWikiLocalizedTextProvider( $this->languageCode
),
- new MediaWikiLanguageDirectionalityLookup()
+ $languageDirectionalityLookup
);
$textInjector = new TextInjector();
$entityTermsView = new PlaceholderEmittingEntityTermsView(
- new FallbackHintHtmlTermRenderer( $languageNameLookup ),
+ new FallbackHintHtmlTermRenderer(
+ $languageDirectionalityLookup,
+ $languageNameLookup
+ ),
$labelDescriptionLookup,
$this->templateFactory,
$editSectionGenerator,
diff --git a/repo/includes/ParserOutput/FallbackHintHtmlTermRenderer.php
b/repo/includes/ParserOutput/FallbackHintHtmlTermRenderer.php
index 3c4b61b..3f7447f 100644
--- a/repo/includes/ParserOutput/FallbackHintHtmlTermRenderer.php
+++ b/repo/includes/ParserOutput/FallbackHintHtmlTermRenderer.php
@@ -7,6 +7,7 @@
use Wikibase\Lib\LanguageFallbackIndicator;
use Wikibase\Lib\LanguageNameLookup;
use Wikibase\View\HtmlTermRenderer;
+use Wikibase\View\LanguageDirectionalityLookup;
/**
* @since 0.5
@@ -22,19 +23,36 @@
private $languageFallbackIndicator;
/**
+ * @var LanguageDirectionalityLookup
+ */
+ private $languageDirectionalityLookup;
+
+ /**
* @param LanguageNameLookup $languageNameLookup
*/
- public function __construct( LanguageNameLookup $languageNameLookup ) {
+ public function __construct(
+ LanguageDirectionalityLookup $languageDirectionalityLookup,
+ LanguageNameLookup $languageNameLookup
+ ) {
$this->languageFallbackIndicator = new
LanguageFallbackIndicator( $languageNameLookup );
+ $this->languageDirectionalityLookup =
$languageDirectionalityLookup;
}
/**
* @param Term $term
- * @return string HTML
+ * @return string HTML representing the term; This will be used in an
HTML language and directionality context
+ * that corresponds to $term->getLanguageCode().
*/
public function renderTerm( Term $term ) {
$html = htmlspecialchars( $term->getText() );
if ( $term instanceof TermFallback ) {
+ $actualLanguageCode = $term->getActualLanguageCode();
+ if ( $actualLanguageCode !== $term->getLanguageCode() )
{
+ $html = '<span ' .
+ 'lang="' . htmlspecialchars(
$actualLanguageCode ) . '" ' .
+ 'dir="' . (
$this->languageDirectionalityLookup->getDirectionality( $actualLanguageCode )
?: 'auto' ) . '"' .
+ '>' . $html . '</span>';
+ }
$html .= $this->languageFallbackIndicator->getHtml(
$term );
}
return $html;
diff --git
a/repo/tests/phpunit/includes/ParserOutput/FallbackHintHtmlTermRendererTest.php
b/repo/tests/phpunit/includes/ParserOutput/FallbackHintHtmlTermRendererTest.php
index c5eca9e..a434e53 100644
---
a/repo/tests/phpunit/includes/ParserOutput/FallbackHintHtmlTermRendererTest.php
+++
b/repo/tests/phpunit/includes/ParserOutput/FallbackHintHtmlTermRendererTest.php
@@ -6,6 +6,7 @@
use Wikibase\DataModel\Term\Term;
use Wikibase\DataModel\Term\TermFallback;
use Wikibase\Lib\LanguageNameLookup;
+use Wikibase\Repo\MediaWikiLanguageDirectionalityLookup;
use Wikibase\Repo\ParserOutput\FallbackHintHtmlTermRenderer;
/**
@@ -17,9 +18,11 @@
class FallbackHintHtmlTermRendererTest extends PHPUnit_Framework_TestCase {
private function newHtmlTermRenderer() {
+ $languageDirectionalityLookup = new
MediaWikiLanguageDirectionalityLookup();
$languageNameLookup = $this->getMock( LanguageNameLookup::class
);
return new FallbackHintHtmlTermRenderer(
+ $languageDirectionalityLookup,
$languageNameLookup
);
}
@@ -36,7 +39,16 @@
'de',
'de'
),
- 'lkt & term<sup
class="wb-language-fallback-indicator wb-language-fallback-variant"></sup>'
+ '<span lang="de" dir="ltr">lkt &
term</span><sup class="wb-language-fallback-indicator
wb-language-fallback-variant"></sup>'
+ ],
+ [
+ new TermFallback(
+ 'en',
+ 'arc term',
+ 'arc',
+ 'arc'
+ ),
+ '<span lang="arc" dir="rtl">arc term</span><sup
class="wb-language-fallback-indicator"></sup>'
],
];
}
diff --git a/view/src/HtmlTermRenderer.php b/view/src/HtmlTermRenderer.php
index c474d3f..6308144 100644
--- a/view/src/HtmlTermRenderer.php
+++ b/view/src/HtmlTermRenderer.php
@@ -14,7 +14,8 @@
/**
* @param Term $term
- * @return string HTML
+ * @return string HTML representing the term; This will be used in an
HTML language and directionality context
+ * that corresponds to $term->getLanguageCode().
*/
public function renderTerm( Term $term );
--
To view, visit https://gerrit.wikimedia.org/r/288188
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I004950863101b9a5d20970b299efbef125cbe1c8
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Adrian Heine <[email protected]>
Gerrit-Reviewer: Adrian Heine <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: Jonas Kress (WMDE) <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits