Liangent has uploaded a new change for review. https://gerrit.wikimedia.org/r/71996
Change subject: Use requested variant language instead of target language to fetch labels ...................................................................... Use requested variant language instead of target language to fetch labels Change-Id: I5a461251c5c4b0ff6c5abd701707c5c04910fadf --- M client/includes/parserhooks/PropertyParserFunction.php 1 file changed, 25 insertions(+), 2 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/96/71996/1 diff --git a/client/includes/parserhooks/PropertyParserFunction.php b/client/includes/parserhooks/PropertyParserFunction.php index 4d09ab9..3a15074 100644 --- a/client/includes/parserhooks/PropertyParserFunction.php +++ b/client/includes/parserhooks/PropertyParserFunction.php @@ -2,6 +2,7 @@ namespace Wikibase; +use Language; use Wikibase\Client\WikibaseClient; use Wikibase\DataModel\SimpleSiteLink; use Wikibase\Lib\SnakFormatter; @@ -188,7 +189,18 @@ $propertyLabelResolver = $wikibaseClient->getStore()->getPropertyLabelResolver(); $formatter = $wikibaseClient->newSnakFormatter(); - $instance = new self( $targetLanguage, + // Use variant language instead of content language itself when the output will + // be converted, in case some labels can't be converted correctly afterwards. + $parserOptions = $parser->getOptions(); + $handleVariants = $parser->ot['html'] && !$parserOptions->getInterfaceMessage() + && !$parserOptions->getDisableContentConversion(); + if ( $handleVariants ) { + $labelLanguage = Language::factory( $targetLanguage->getPreferredVariant() ); + } else { + $labelLanguage = $targetLanguage; + } + + $instance = new self( $labelLanguage, $entityLookup, $propertyLabelResolver, $errorFormatter, $formatter ); @@ -210,10 +222,21 @@ $text = $status->isOK() ? $status->getValue() : ''; + // This condition is less strict than handleVariants. + if ( $parser->ot['html'] || $parser->ot['pre'] ) { + $text = wfEscapeWikitext( $text ); + + // Since we've already fetched labels in requested variant languages, + // prevent them from being converted again in further parsing process. + // Some tests may be added to ensure this behavior. + if ( $handleVariants ) { + $text = $targetLanguage->getConverter()->markNoConversion( $text ); + } + } + $result = array( $text, 'noparse' => false, - 'nowiki' => true, ); wfProfileOut( __METHOD__ ); -- To view, visit https://gerrit.wikimedia.org/r/71996 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5a461251c5c4b0ff6c5abd701707c5c04910fadf Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Liangent <liang...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits