diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwDefaultSettings.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwDefaultSettings.java
index 59545582e..3c21d9718 100644
--- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwDefaultSettings.java
+++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwDefaultSettings.java
@@ -3010,13 +3010,13 @@ public class XomwDefaultSettings {
// * is 'dmy or mdy'.
// */
// $wgAmericanDates = false;
-//
-// /**
-// * For Hindi and Arabic use local numerals instead of Western style (0-9)
-// * numerals in interface.
-// */
-// $wgTranslateNumerals = true;
-//
+
+ /**
+ * For Hindi and Arabic use local numerals instead of Western style (0-9)
+ * numerals in interface.
+ */
+ public static boolean wgTranslateNumerals = true;
+
// /**
// * Translation using MediaWiki: namespace.
// * Interface messages will be loaded from the database.
diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwMessage.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwMessage.java
index 854752709..45ab84ad6 100644
--- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwMessage.java
+++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwMessage.java
@@ -1108,7 +1108,7 @@ public class XomwMessage {
* @return String
*/
// DFLT:type="before"
-// private byte[] replaceParameters(byte[] message, int prm_tid, int format) {
+// private byte[] replaceParameters(byte[] message, int type, int format) {
// $replacementKeys = [];
// foreach (this.parameters as $n => $param) {
// list($paramType, $value) = this.extractParam($param, $format);
@@ -1141,30 +1141,29 @@ public class XomwMessage {
case XomwMessagePrm.Tid__num:
// Replace number prmsVar always in before step for now.
// No support for combined raw and num prmsVar
-// rv.Set(PRM_TID_BEFORE, this.getLanguage().formatNum((XomwMessagePrm_num)prm).num);
-// return [PRM_TID_BEFORE, this.getLanguage()->formatNum($param['num']) ];
+ rv.Set(PRM_TID_BEFORE, this.getLanguage().formatNum(((XomwMessagePrm_num)prm).numAsBry()));
break;
- case XomwMessagePrm.Tid__duration:
+// case XomwMessagePrm.Tid__duration:
// return [PRM_TID_BEFORE, this.getLanguage()->formatDuration($param['duration']) ];
- break;
- case XomwMessagePrm.Tid__expiry:
+// break;
+// case XomwMessagePrm.Tid__expiry:
// return [PRM_TID_BEFORE, this.getLanguage()->formatExpiry($param['expiry']) ];
- break;
- case XomwMessagePrm.Tid__period:
+// break;
+// case XomwMessagePrm.Tid__period:
// return [PRM_TID_BEFORE, this.getLanguage()->formatTimePeriod($param['period']) ];
- break;
- case XomwMessagePrm.Tid__size:
+// break;
+// case XomwMessagePrm.Tid__size:
// return [PRM_TID_BEFORE, this.getLanguage()->formatSize($param['size']) ];
- break;
- case XomwMessagePrm.Tid__bitrate:
+// break;
+// case XomwMessagePrm.Tid__bitrate:
// return [PRM_TID_BEFORE, this.getLanguage()->formatBitrate($param['bitrate']) ];
- break;
- case XomwMessagePrm.Tid__plaintext:
+// break;
+// case XomwMessagePrm.Tid__plaintext:
// return [PRM_TID_AFTER, this.formatPlaintext($param['plaintext'], $format) ];
- break;
- case XomwMessagePrm.Tid__list:
+// break;
+// case XomwMessagePrm.Tid__list:
// return this.formatListParam($param['list'], $param['type'], $format);
- break;
+// break;
default:
String warning = "Invalid parameter for message '" + this.getKey() + "': " +
prm.toString();
@@ -1373,6 +1372,7 @@ class XomwMessagePrm_raw extends XomwMessagePrm { public byte[] raw;
}
}
class XomwMessagePrm_num extends XomwMessagePrm { public int num;
+ public byte[] numAsBry() {return Int_.To_bry(num);}
public XomwMessagePrm_num(int num) {super(Tid__num);
this.num = num;
}
diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/title/XomwMediaWikiTitleCodecTest.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/title/XomwMediaWikiTitleCodecTest.java
index ab77f35df..7c22bd68b 100644
--- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/title/XomwMediaWikiTitleCodecTest.java
+++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/title/XomwMediaWikiTitleCodecTest.java
@@ -51,6 +51,7 @@ class XomwMediaWikiTitleCodecFxt {
public XomwLanguage Make_lang() {
Xoae_app app = Xoa_app_fxt.Make__app__edit();
Xol_lang_itm lang = new Xol_lang_itm(app.Lang_mgr(), Xol_lang_itm_.Key_en);
+ XomwEnv env = new XomwEnv(lang);
return new XomwLanguage(lang);
}
public void Test_splitTitleString(XomwMediaWikiTitleCodec codec, String src, XomwMediaWikiTitleCodecParts expd) {
diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/languages/XomwLanguage.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/languages/XomwLanguage.java
index 080aea360..cd3f7a15b 100644
--- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/languages/XomwLanguage.java
+++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/languages/XomwLanguage.java
@@ -47,7 +47,7 @@ public class XomwLanguage {
// /**
// * @var LocalisationCache
// */
-// static public $dataCache;
+// static public $dataCache; // equivalent to MessagesLangCode.php
//
// static public $mLangObjCache = [];
//
@@ -3267,49 +3267,52 @@ public class XomwLanguage {
// function emphasize($text) {
// return "$text";
// }
-//
-// /**
-// * Normally we output all numbers in plain en_US style, that is
-// * 293,291.235 for twohundredninetythreethousand-twohundredninetyone
-// * point twohundredthirtyfive. However this is not suitable for all
-// * languages, some such as Bengali (bn) want ২,৯৩,২৯১.২৩৫ and others such as
-// * Icelandic just want to use commas instead of dots, and dots instead
-// * of commas like "293.291,235".
-// *
-// * An example of this function being called:
-// *
-// * wfMessage('message')->numParams($num)->text()
-// *
-// *
-// * See $separatorTransformTable on MessageIs.php for
-// * the , => . and . => , implementation.
-// *
-// * @todo check if it's viable to use localeconv() for the decimal separator thing.
-// * @param int|float $number The String to be formatted, should be an integer
-// * or a floating point number.
-// * @param boolean $nocommafy Set to true for special numbers like dates
-// * @return String
-// */
-// public function formatNum($number, $nocommafy = false) {
-// global $wgTranslateNumerals;
-// if (!$nocommafy) {
-// $number = this.commafy($number);
-// $s = this.separatorTransformTable();
-// if ($s) {
-// $number = strtr($number, $s);
+
+ /**
+ * Normally we output all numbers in plain en_US style, that is
+ * 293,291.235 for twohundredninetythreethousand-twohundredninetyone
+ * point twohundredthirtyfive. However this is not suitable for all
+ * languages, some such as Bengali (bn) want ২,৯৩,২৯১.২৩৫ and others such as
+ * Icelandic just want to use commas instead of dots, and dots instead
+ * of commas like "293.291,235".
+ *
+ * An example of this function being called:
+ *
+ * wfMessage('message')->numParams($num)->text()
+ *
+ *
+ * See $separatorTransformTable on MessageIs.php for
+ * the , => . and . => , implementation.
+ *
+ * @todo check if it's viable to use localeconv() for the decimal separator thing.
+ * @param int|float $number The String to be formatted, should be an integer
+ * or a floating point number.
+ * @param boolean $nocommafy Set to true for special numbers like dates
+ * @return String
+ */
+ // DFLT:nocommafy=false
+ public byte[] formatNum(byte[] number) {return formatNum(number, false);}
+ public byte[] formatNum(byte[] number, boolean nocommafy) {
+ if (!nocommafy) {
+ // XOMW: use earlier port
+ // number = this.commafy(number);
+ // s = this.separatorTransformTable();
+ // if (s) {
+ // number = strtr(number, s);
+ // }
+ return xoLang.Num_mgr().Format_num(number, nocommafy);
+ }
+
+ if (XomwDefaultSettings.wgTranslateNumerals) {
+// s = this.digitTransformTable();
+// if (s) {
+// number = strtr(number, s);
// }
-// }
-//
-// if ($wgTranslateNumerals) {
-// $s = this.digitTransformTable();
-// if ($s) {
-// $number = strtr($number, $s);
-// }
-// }
-//
-// return $number;
-// }
-//
+ }
+
+ return number;
+ }
+
// /**
// * Front-end for non-commafied formatNum
// *
@@ -3512,14 +3515,14 @@ public class XomwLanguage {
// function digitTransformTable() {
// return self::$dataCache->getItem(this.mCode, 'digitTransformTable');
// }
-//
-// /**
-// * @return array
-// */
-// function separatorTransformTable() {
-// return self::$dataCache->getItem(this.mCode, 'separatorTransformTable');
-// }
-//
+
+ /**
+ * @return array
+ */
+ // private byte[][] separatorTransformTable() {
+ // return self::$dataCache->getItem(this.mCode, 'separatorTransformTable');
+ // }
+
// /**
// * Take a list of strings and build a locale-friendly comma-separated
// * list, using the local comma-separator message.
diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/languages/XomwLanguageTest.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/languages/XomwLanguageTest.java
index b994a9c2b..923a01cf9 100644
--- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/languages/XomwLanguageTest.java
+++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/languages/XomwLanguageTest.java
@@ -118,6 +118,7 @@ class XomwLanguageFxt {
public XomwLanguageFxt() {
Xoae_app app = Xoa_app_fxt.Make__app__edit();
Xol_lang_itm xoLang = new Xol_lang_itm(app.Lang_mgr(), Bry_.new_a7("en"));
+ XomwEnv env = new XomwEnv(xoLang);
this.lang = new XomwLanguage(xoLang);
}
public void Init_digitGroupingPattern(String digitGroupingPattern) {
diff --git a/xowa.home.version b/xowa.home.version
index 829ff6241..4ea5e4dd2 100644
--- a/xowa.home.version
+++ b/xowa.home.version
@@ -1 +1 @@
-blog_new_job[D[D[D[D[D[D[D_
+update