Skip to content

Commit c5cc498

Browse files
committed
default zero char changed for simplified Chinese
see issue #985
1 parent 36ccccc commit c5cc498

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

base/src/main/java/net/time4j/format/NumberSystem.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,10 @@ public boolean isDecimal() {
426426
* all numbers 200 or greater. When parsing, both 2-versions are supported.
427427
* And the special zero char "〇" will be handled like the default
428428
* zero char &quot;零&quot;. </p>
429+
*
430+
* <p>Note: This numbering system can also be used in Taiwan because
431+
* traditional Chinese differs from this system only for numbers at 10,000
432+
* or above. </p>
429433
*
430434
* <p>See also <a href="https://en.wikibooks.org/wiki/Chinese_(Mandarin)/Numbers">Wikibooks</a>.
431435
* The {@link #getCode() code} is: &quot;mandarin&quot;. </p>
@@ -444,6 +448,10 @@ public boolean isDecimal() {
444448
* wird das spezielle Nullzeichen &quot;〇&quot; wie das
445449
* Standard-Nullzeichen &quot;零&quot; behandelt. </p>
446450
*
451+
* <p>Hinweis: Dieses System kann auch auf Taiwan verwendet werden, weil
452+
* es sich von traditionellem Chinesisch nur für Zahlen von 10.000 oder
453+
* h&ouml;her unterscheidet. </p>
454+
*
447455
* <p>Siehe auch <a href="https://en.wikibooks.org/wiki/Chinese_(Mandarin)/Numbers">Wikibooks</a>.
448456
* Der {@link #getCode() Code} lautet: &quot;mandarin&quot;. </p>
449457
*
@@ -580,18 +588,24 @@ public boolean isDecimal() {
580588
},
581589

582590
/**
583-
* Like {@code CHINESE_MANDARIN} but with the only difference of printing
584-
* the 2-char in all numbers greater than 199 using &quot;二&quot;.
591+
* Like {@code CHINESE_MANDARIN } but with the main difference of printing
592+
* the zero character as &quot;〇&quot;.
593+
*
594+
* <p>Furthermore, the 2-char in all numbers greater than 199 will always
595+
* be printed using &quot;二&quot;. </p>
585596
*
586597
* <p>The {@link #getCode() code} is: &quot;hans&quot;. </p>
587598
*
588599
* @see #CHINESE_MANDARIN
589600
* @since 5.9.4
590601
*/
591602
/*[deutsch]
592-
* Wie {@code CHINESE_MANDARIN}, aber mit dem Unterschied, da&szlig;
593-
* Zahlen gr&ouml;&szlig;er als 199 f&uuml; das 2-Zeichen immer das
594-
* Zeichen &quot;二&quot; verwenden.
603+
* Wie {@code CHINESE_MANDARIN}, aber mit dem Hauptunterschied, da&szlig;
604+
* als Standardzeichen f&uuml;r die Null &quot;〇&quot; verwendet wird.
605+
*
606+
* <p>Au&szlig;erdem werden Zahlen gr&ouml;&szlig;er als 199 f&uuml;r das
607+
* 2-Zeichen in Hundertern und Tausendern immer das Zeichen &quot;二&quot;
608+
* verwenden. </p>
595609
*
596610
* <p>Der {@link #getCode() Code} lautet: &quot;hans&quot;. </p>
597611
*
@@ -603,6 +617,7 @@ public boolean isDecimal() {
603617
public String toNumeral(int number) {
604618
return NumberSystem.CHINESE_MANDARIN
605619
.toNumeral(number)
620+
.replace(CHINESE_ZERO_STD, CHINESE_ZERO_ALT)
606621
.replace(CHINESE_TWO_ALT, CHINESE_TWO_STD);
607622
}
608623
@Override

base/src/test/java/net/time4j/format/MandarinNumberTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public void simplified() {
4242
is(2009));
4343
assertThat(
4444
NumberSystem.CHINESE_SIMPLIFIED.toNumeral(2009),
45-
is("二千零九"));
45+
is("二千〇九"));
4646
assertThat(
4747
NumberSystem.CHINESE_SIMPLIFIED.toNumeral(1230),
4848
is("一千二百三十"));

0 commit comments

Comments
 (0)