Matěj Suchánek has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/362215 )
Change subject: Use language fallback when showing descriptions in search
results
......................................................................
Use language fallback when showing descriptions in search results
This fixes a todo comment in the code.
Change-Id: I45039f579054c0130162c9e14c87c94dfe3cb1c3
---
M repo/Wikibase.hooks.php
1 file changed, 17 insertions(+), 9 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/15/362215/1
diff --git a/repo/Wikibase.hooks.php b/repo/Wikibase.hooks.php
index dbbc9f4..8791675 100644
--- a/repo/Wikibase.hooks.php
+++ b/repo/Wikibase.hooks.php
@@ -12,6 +12,7 @@
use HistoryPager;
use Html;
use IContextSource;
+use Language;
use LogEntry;
use MediaWiki\MediaWikiServices;
use MWException;
@@ -546,15 +547,22 @@
if ( $content && !$content->isRedirect() ) {
$entity = $content->getEntity();
- $languageCode =
$searchPage->getLanguage()->getCode(); // TODO: language fallback!
-
- if ( $entity instanceof DescriptionsProvider &&
-
$entity->getDescriptions()->hasTermForLanguage( $languageCode )
- ) {
- $description =
$entity->getDescriptions()->getByLanguage( $languageCode )->getText();
- $attr = array( 'class' =>
'wb-itemlink-description' );
- $link .= $searchPage->msg(
'colon-separator' )->text();
- $link .= Html::element( 'span', $attr,
$description );
+ if ( $entity instanceof DescriptionsProvider ) {
+ $language = $searchPage->getLanguage();
+ $chain = ( new
LanguageFallbackChainFactory() )->newFromLanguage( $language );
+ $terms =
$entity->getDescriptions()->toTextArray();
+ $termData =
$chain->extractPreferredValue( $terms );
+ if ( $termData !== null ) {
+ $description =
$termData['value'];
+ $attr = array( 'class' =>
'wb-itemlink-description' );
+ if ( $termData['language'] !==
$language->getCode() ) {
+ $lang =
Language::factory( $termData['language'] );
+ $attr['lang'] =
$lang->getHtmlCode();
+ $attr['dir'] =
$lang->getDir();
+ }
+ $link .= $searchPage->msg(
'colon-separator' )->text();
+ $link .= Html::element( 'span',
$attr, $description );
+ }
}
}
--
To view, visit https://gerrit.wikimedia.org/r/362215
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I45039f579054c0130162c9e14c87c94dfe3cb1c3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Matěj Suchánek <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits