Daniel Kinzler has uploaded a new change for review.
https://gerrit.wikimedia.org/r/98101
Change subject: (bug #56685) Parsing of localized quantities.
......................................................................
(bug #56685) Parsing of localized quantities.
This introduces MediaWikiNumberUnlocalizer which relies on
MediaWiki's Language class for converting numbers to canonical form.
Change-Id: I996e8d032a476d245bbfc2872d7eae4bbad79cb1
---
M lib/WikibaseLib.classes.php
M lib/WikibaseLib.php
A lib/includes/parsers/MediaWikiNumberUnlocalizer.php
3 files changed, 41 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/01/98101/1
diff --git a/lib/WikibaseLib.classes.php b/lib/WikibaseLib.classes.php
index f48a838..b925dbf 100644
--- a/lib/WikibaseLib.classes.php
+++ b/lib/WikibaseLib.classes.php
@@ -135,6 +135,7 @@
// includes/parsers
'Wikibase\Lib\EntityIdParser' =>
'includes/parsers/EntityIdParser.php',
+ 'Wikibase\Lib\MediaWikiNumberUnlocalizer' =>
'includes/parsers/MediaWikiNumberUnlocalizer.php',
// includes/specials
'Wikibase\Lib\Specials\SpecialWikibasePage' =>
'includes/specials/SpecialWikibasePage.php',
diff --git a/lib/WikibaseLib.php b/lib/WikibaseLib.php
index 9e819b1..2315187 100644
--- a/lib/WikibaseLib.php
+++ b/lib/WikibaseLib.php
@@ -136,7 +136,15 @@
// i18n
$wgExtensionMessagesFiles['WikibaseLib'] = __DIR__ .
'/WikibaseLib.i18n.php';
+ // This is somewhat hackish, make WikibaseValueParserBuilders,
analogous to WikibaseValueFormatterBuilders
$wgValueParsers['wikibase-entityid'] = 'Wikibase\Lib\EntityIdParser';
+ $wgValueParsers['quantity'] = function( ValueParsers\ParserOptions
$options ) {
+ $unlocalizer = new Wikibase\Lib\MediaWikiNumberUnlocalizer();
+ return new \ValueParsers\QuantityParser(
+ new \ValueParsers\DecimalParser( $options, $unlocalizer
),
+ $options );
+ };
+
$wgDataValues['wikibase-entityid'] =
'Wikibase\DataModel\Entity\EntityIdValue';
$wgJobClasses['ChangeNotification'] = 'Wikibase\ChangeNotificationJob';
$wgJobClasses['UpdateRepoOnMove'] = 'Wikibase\UpdateRepoOnMoveJob';
diff --git a/lib/includes/parsers/MediaWikiNumberUnlocalizer.php
b/lib/includes/parsers/MediaWikiNumberUnlocalizer.php
new file mode 100644
index 0000000..87093d7
--- /dev/null
+++ b/lib/includes/parsers/MediaWikiNumberUnlocalizer.php
@@ -0,0 +1,32 @@
+<?php
+
+namespace Wikibase\Lib;
+use Language;
+use ValueParsers\ParserOptions;
+use ValueParsers\Unlocalizer;
+
+/**
+ * MediaWikiNumberUnlocalizer
+ *
+ * @license GPL 2+
+ * @author Daniel Kinzler
+ */
+class MediaWikiNumberUnlocalizer implements Unlocalizer {
+
+ /**
+ * @see Unlocalizer::unlocalize()
+ *
+ * @param string $number string to process
+ * @param string $language language code
+ * @param ParserOptions $options
+ *
+ * @return string unlocalized string
+ */
+ public function unlocalize( $number, $language, ParserOptions $options
) {
+ $language = Language::factory( $language );
+
+ $canonicalizedNumber = $language->parseFormattedNumber( $number
);
+ return $canonicalizedNumber;
+ }
+}
+
\ No newline at end of file
--
To view, visit https://gerrit.wikimedia.org/r/98101
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I996e8d032a476d245bbfc2872d7eae4bbad79cb1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Daniel Kinzler <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits