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 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits