summaryrefslogtreecommitdiff
path: root/i18npool
diff options
context:
space:
mode:
authorKarl Hong <khong@openoffice.org>2002-05-30 05:59:29 +0000
committerKarl Hong <khong@openoffice.org>2002-05-30 05:59:29 +0000
commitcb9cf006bcfd3c6ed3d94ace1c2dd11d800d34c5 (patch)
treeb274834d76403136f6503897e0b343519b096d99 /i18npool
parent33f5991d80ce898fe8e0e420dfc39328f8e3317c (diff)
#99499#added new transliteration for Native number formatter
Diffstat (limited to 'i18npool')
-rw-r--r--i18npool/inc/chartonum.hxx1
-rw-r--r--i18npool/inc/numtochar.hxx5
-rw-r--r--i18npool/inc/numtotext_cjk.hxx8
-rw-r--r--i18npool/source/registerservices/registerservices.cxx12
-rw-r--r--i18npool/source/transliteration/chartonum.cxx1
-rw-r--r--i18npool/source/transliteration/data/numberchar.h24
-rw-r--r--i18npool/source/transliteration/numtochar.cxx5
-rw-r--r--i18npool/source/transliteration/numtotext_cjk.cxx85
8 files changed, 101 insertions, 40 deletions
diff --git a/i18npool/inc/chartonum.hxx b/i18npool/inc/chartonum.hxx
index b407cfaf0a3b..69e528c06813 100644
--- a/i18npool/inc/chartonum.hxx
+++ b/i18npool/inc/chartonum.hxx
@@ -77,6 +77,7 @@ TRANSLITERATION_CHARTONUM(Upper_ko)
TRANSLITERATION_CHARTONUM(Hangul_ko)
TRANSLITERATION_CHARTONUM(Lower_ko)
TRANSLITERATION_CHARTONUM(KanjiShort_ja_JP)
+TRANSLITERATION_CHARTONUM(KanjiTraditional_ja_JP)
TRANSLITERATION_CHARTONUM(Fullwidth)
TRANSLITERATION_CHARTONUM(Indic_ar)
TRANSLITERATION_CHARTONUM(EastIndic_ar)
diff --git a/i18npool/inc/numtochar.hxx b/i18npool/inc/numtochar.hxx
index 678b4243474d..b87a494e2c0d 100644
--- a/i18npool/inc/numtochar.hxx
+++ b/i18npool/inc/numtochar.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: numtochar.hxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: bustamam $ $Date: 2002-04-04 22:32:36 $
+ * last change: $Author: khong $ $Date: 2002-05-30 06:59:29 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -91,6 +91,7 @@ TRANSLITERATION_NUMTOCHAR(Upper_ko)
TRANSLITERATION_NUMTOCHAR(Hangul_ko)
TRANSLITERATION_NUMTOCHAR(Lower_ko)
TRANSLITERATION_NUMTOCHAR(KanjiShort_ja_JP)
+TRANSLITERATION_NUMTOCHAR(KanjiTraditional_ja_JP)
TRANSLITERATION_NUMTOCHAR(Fullwidth)
TRANSLITERATION_NUMTOCHAR(Indic_ar)
TRANSLITERATION_NUMTOCHAR(EastIndic_ar)
diff --git a/i18npool/inc/numtotext_cjk.hxx b/i18npool/inc/numtotext_cjk.hxx
index 0db214ccecd4..98ef614a2928 100644
--- a/i18npool/inc/numtotext_cjk.hxx
+++ b/i18npool/inc/numtotext_cjk.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: numtotext_cjk.hxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: khong $ $Date: 2002-03-30 09:23:22 $
+ * last change: $Author: khong $ $Date: 2002-05-30 06:59:29 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -77,6 +77,8 @@ protected:
sal_Int16 numberFlag;
sal_Int16 bulletCount;
sal_Int16 number;
+ sal_Int16 exponentCount;
+ sal_Int16 *multiplierExponent;
private:
sal_Bool SAL_CALL numberMaker(const sal_Unicode *str, sal_Int32 begin, sal_Int32 len,
@@ -104,6 +106,8 @@ TRANSLITERATION_NUMTOTEXT_CJK ( FormalUpper_ko )
TRANSLITERATION_NUMTOTEXT_CJK ( FormalHangul_ko )
TRANSLITERATION_NUMTOTEXT_CJK ( KanjiLongModern_ja_JP )
TRANSLITERATION_NUMTOTEXT_CJK ( KanjiLongTraditional_ja_JP )
+TRANSLITERATION_NUMTOTEXT_CJK ( KanjiShortModern_ja_JP )
+TRANSLITERATION_NUMTOTEXT_CJK ( KanjiShortTraditional_ja_JP )
TRANSLITERATION_NUMTOTEXT_CJK ( AIUFullWidth_ja_JP )
TRANSLITERATION_NUMTOTEXT_CJK ( AIUHalfWidth_ja_JP )
TRANSLITERATION_NUMTOTEXT_CJK ( IROHAFullWidth_ja_JP )
diff --git a/i18npool/source/registerservices/registerservices.cxx b/i18npool/source/registerservices/registerservices.cxx
index 8224494ebbb6..a1914778756d 100644
--- a/i18npool/source/registerservices/registerservices.cxx
+++ b/i18npool/source/registerservices/registerservices.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: registerservices.cxx,v $
*
- * $Revision: 1.15 $
+ * $Revision: 1.16 $
*
- * last change: $Author: khong $ $Date: 2002-05-24 22:38:19 $
+ * last change: $Author: khong $ $Date: 2002-05-30 06:57:59 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -268,6 +268,7 @@ IMPL_CREATEINSTANCE( NumToCharLower_zh_TW )
IMPL_CREATEINSTANCE( NumToCharUpper_zh_TW )
IMPL_CREATEINSTANCE( NumToCharFullwidth )
IMPL_CREATEINSTANCE( NumToCharKanjiShort_ja_JP )
+IMPL_CREATEINSTANCE( NumToCharKanjiTraditional_ja_JP )
IMPL_CREATEINSTANCE( NumToCharHangul_ko )
IMPL_CREATEINSTANCE( NumToCharLower_ko )
IMPL_CREATEINSTANCE( NumToCharUpper_ko )
@@ -283,6 +284,7 @@ IMPL_CREATEINSTANCE( CharToNumLower_zh_TW )
IMPL_CREATEINSTANCE( CharToNumUpper_zh_TW )
IMPL_CREATEINSTANCE( CharToNumFullwidth )
IMPL_CREATEINSTANCE( CharToNumKanjiShort_ja_JP )
+IMPL_CREATEINSTANCE( CharToNumKanjiTraditional_ja_JP )
IMPL_CREATEINSTANCE( CharToNumHangul_ko )
IMPL_CREATEINSTANCE( CharToNumLower_ko )
IMPL_CREATEINSTANCE( CharToNumUpper_ko )
@@ -297,6 +299,8 @@ IMPL_CREATEINSTANCE( NumToTextLower_zh_TW )
IMPL_CREATEINSTANCE( NumToTextUpper_zh_TW )
IMPL_CREATEINSTANCE( NumToTextKanjiLongModern_ja_JP )
IMPL_CREATEINSTANCE( NumToTextKanjiLongTraditional_ja_JP )
+IMPL_CREATEINSTANCE( NumToTextKanjiShortModern_ja_JP )
+IMPL_CREATEINSTANCE( NumToTextKanjiShortTraditional_ja_JP )
IMPL_CREATEINSTANCE( NumToTextFormalHangul_ko )
IMPL_CREATEINSTANCE( NumToTextFormalLower_ko )
IMPL_CREATEINSTANCE( NumToTextFormalUpper_ko )
@@ -565,6 +569,7 @@ static const struct InstancesArray {
IMPL_TRANSLITERATION_ITEM (NumToCharLower_zh_TW),
IMPL_TRANSLITERATION_ITEM (NumToCharFullwidth),
IMPL_TRANSLITERATION_ITEM (NumToCharKanjiShort_ja_JP),
+ IMPL_TRANSLITERATION_ITEM (NumToCharKanjiTraditional_ja_JP),
IMPL_TRANSLITERATION_ITEM (NumToCharLower_ko),
IMPL_TRANSLITERATION_ITEM (NumToCharUpper_ko),
IMPL_TRANSLITERATION_ITEM (NumToCharHangul_ko),
@@ -580,6 +585,7 @@ static const struct InstancesArray {
IMPL_TRANSLITERATION_ITEM (CharToNumLower_zh_TW),
IMPL_TRANSLITERATION_ITEM (CharToNumFullwidth),
IMPL_TRANSLITERATION_ITEM (CharToNumKanjiShort_ja_JP),
+ IMPL_TRANSLITERATION_ITEM (CharToNumKanjiTraditional_ja_JP),
IMPL_TRANSLITERATION_ITEM (CharToNumLower_ko),
IMPL_TRANSLITERATION_ITEM (CharToNumUpper_ko),
IMPL_TRANSLITERATION_ITEM (CharToNumHangul_ko),
@@ -594,6 +600,8 @@ static const struct InstancesArray {
IMPL_TRANSLITERATION_ITEM (NumToTextLower_zh_TW),
IMPL_TRANSLITERATION_ITEM (NumToTextKanjiLongModern_ja_JP),
IMPL_TRANSLITERATION_ITEM (NumToTextKanjiLongTraditional_ja_JP),
+ IMPL_TRANSLITERATION_ITEM (NumToTextKanjiShortModern_ja_JP),
+ IMPL_TRANSLITERATION_ITEM (NumToTextKanjiShortTraditional_ja_JP),
IMPL_TRANSLITERATION_ITEM (NumToTextInformalHangul_ko),
IMPL_TRANSLITERATION_ITEM (NumToTextInformalLower_ko),
IMPL_TRANSLITERATION_ITEM (NumToTextInformalUpper_ko),
diff --git a/i18npool/source/transliteration/chartonum.cxx b/i18npool/source/transliteration/chartonum.cxx
index ea96c1423018..1bc635c8904a 100644
--- a/i18npool/source/transliteration/chartonum.cxx
+++ b/i18npool/source/transliteration/chartonum.cxx
@@ -113,6 +113,7 @@ TRANSLITERATION_CHARTONUM( Lower_zh_TW, Lower_zh)
TRANSLITERATION_CHARTONUM( Upper_zh_CN, Upper_zh)
TRANSLITERATION_CHARTONUM( Upper_zh_TW, Upper_zh_TW)
TRANSLITERATION_CHARTONUM( KanjiShort_ja_JP, Modern_ja)
+TRANSLITERATION_CHARTONUM( KanjiTraditional_ja_JP, Traditional_ja)
TRANSLITERATION_CHARTONUM( Lower_ko, Lower_ko)
TRANSLITERATION_CHARTONUM( Upper_ko, Upper_ko)
TRANSLITERATION_CHARTONUM( Hangul_ko, Hangul_ko)
diff --git a/i18npool/source/transliteration/data/numberchar.h b/i18npool/source/transliteration/data/numberchar.h
index a87ad29fa4c7..e204f19d95d5 100644
--- a/i18npool/source/transliteration/data/numberchar.h
+++ b/i18npool/source/transliteration/data/numberchar.h
@@ -2,9 +2,9 @@
*
* $RCSfile: numberchar.h,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: khong $ $Date: 2002-05-03 20:40:35 $
+ * last change: $Author: khong $ $Date: 2002-05-30 06:56:31 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -119,8 +119,6 @@ static sal_Unicode MinusChar[] = {
#define isDecimal(n) ( n == NUMBER_DECIMAL )
#define isMinus(n) ( n == NUMBER_MINUS )
-const sal_Int16 ExponentCount_CJK = 6;
-
const sal_Int16 Multiplier_Lower_zh = 0;
const sal_Int16 Multiplier_Upper_zh = 1;
const sal_Int16 Multiplier_Lower_zh_TW = 2;
@@ -130,6 +128,8 @@ const sal_Int16 Multiplier_Modern_ja = 5;
const sal_Int16 Multiplier_Traditional_ja = 6;
const sal_Int16 Multiplier_Count = 7;
+const sal_Int16 ExponentCount_CJK = 6;
+
static sal_Int16 MultiplierExponent_CJK[ExponentCount_CJK] = {
12, 8, 4, 3, 2, 1
};
@@ -143,6 +143,22 @@ static sal_Unicode MultiplierChar_CJK[][ExponentCount_CJK] = {
0x5146, 0x5104, 0x842C, 0x9621, 0x767E, 0x62FE, // Japanese Traditional
};
+const sal_Int16 ExponentCount_short_CJK = 2;
+
+static sal_Int16 MultiplierExponent_short_CJK[ExponentCount_short_CJK] = {
+ 8, 4,
+};
+
+static sal_Unicode MultiplierChar_short_CJK[][ExponentCount_short_CJK] = {
+ 0x4EBF, 0x4E07, // S. Chinese Lower
+ 0x4EBF, 0x4E07, // S. Chinese Upper
+ 0x5104, 0x842C, // T. Chinese & Korean Lower
+ 0x5104, 0x842C, // T. Chinese & Korean Upper
+ 0xC5B5, 0xB9CC, // Korean Hangul
+ 0x5104, 0x4E07, // Japanese Modern
+ 0x5104, 0x842C, // Japanese Traditional
+};
+
} } } }
#endif // _L10N_TRANSLITERATION_NUMTOCHAR_H_
diff --git a/i18npool/source/transliteration/numtochar.cxx b/i18npool/source/transliteration/numtochar.cxx
index 08f96f5204c3..f9093dee6091 100644
--- a/i18npool/source/transliteration/numtochar.cxx
+++ b/i18npool/source/transliteration/numtochar.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: numtochar.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: bustamam $ $Date: 2002-04-04 22:32:05 $
+ * last change: $Author: khong $ $Date: 2002-05-30 06:54:40 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -102,6 +102,7 @@ TRANSLITERATION_NUMTOCHAR( Lower_zh_TW, Lower_zh )
TRANSLITERATION_NUMTOCHAR( Upper_zh_CN, Upper_zh )
TRANSLITERATION_NUMTOCHAR( Upper_zh_TW, Upper_zh_TW )
TRANSLITERATION_NUMTOCHAR( KanjiShort_ja_JP, Modern_ja )
+TRANSLITERATION_NUMTOCHAR( KanjiTraditional_ja_JP, Traditional_ja )
TRANSLITERATION_NUMTOCHAR( Lower_ko, Lower_ko )
TRANSLITERATION_NUMTOCHAR( Upper_ko, Upper_ko )
TRANSLITERATION_NUMTOCHAR( Hangul_ko, Hangul_ko )
diff --git a/i18npool/source/transliteration/numtotext_cjk.cxx b/i18npool/source/transliteration/numtotext_cjk.cxx
index 9a79bd2aea72..e6e723079bce 100644
--- a/i18npool/source/transliteration/numtotext_cjk.cxx
+++ b/i18npool/source/transliteration/numtotext_cjk.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: numtotext_cjk.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: khong $ $Date: 2002-03-30 09:24:46 $
+ * last change: $Author: khong $ $Date: 2002-05-30 06:54:40 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -128,12 +128,22 @@ OUString SAL_CALL NumToText_CJK::transliterate( const OUString& inStr, sal_Int32
offset[count++] = i - len + startPos;
}
else {
+ sal_Bool notZero = sal_False;
+ for (sal_Int32 begin = 0, end = len % multiplierExponent[0];
+ end <= len; begin = end, end += multiplierExponent[0]) {
sal_Int32 _count = count;
- for (sal_Int32 begin = 0, end = len % MultiplierExponent_CJK[0];
- end <= len; begin = end, end += MultiplierExponent_CJK[0])
- numberMaker(srcStr->buffer, begin, end - begin, newStr->buffer, count,
+ notZero |= numberMaker(srcStr->buffer, begin, end - begin, newStr->buffer, count,
end == len ? 0 : multiplierChar[0], offset, i - len + startPos);
- if (_count == count && ! (numberFlag & NUMBER_OMIT_ONLY_ZERO)) {
+ if (count > 0 && newStr->buffer[count-1] == numberChar[0])
+ count--;
+ if (notZero && _count == count) {
+ if (end != len) {
+ newStr->buffer[count] = multiplierChar[0];
+ offset[count++] = i - len + startPos;
+ }
+ }
+ }
+ if (! notZero && ! (numberFlag & NUMBER_OMIT_ONLY_ZERO)) {
newStr->buffer[count] = numberChar[0];
offset[count++] = i - len + startPos;
}
@@ -162,8 +172,23 @@ OUString SAL_CALL NumToText_CJK::transliterate( const OUString& inStr, sal_Int32
sal_Bool SAL_CALL NumToText_CJK::numberMaker(const sal_Unicode *str, sal_Int32 begin, sal_Int32 len,
sal_Unicode *dst, sal_Int32& count, sal_Unicode multiChar, Sequence< sal_Int32 >& offset, sal_Int32 startPos)
{
- if ( len == 1 ) {
- if (str[begin] != NUMBER_ZERO) {
+ if ( len <= multiplierExponent[exponentCount-1] ) {
+ if (multiplierExponent[exponentCount-1] > 1) {
+ sal_Int16 i;
+ sal_Bool notZero = false;
+ for (i = 0; i < len; i++, begin++) {
+ if (notZero || str[begin] != NUMBER_ZERO) {
+ dst[count] = numberChar[str[begin] - NUMBER_ZERO];
+ offset[count++] = begin + startPos;
+ notZero = sal_True;
+ }
+ }
+ if (notZero && multiChar > 0) {
+ dst[count] = multiChar;
+ offset[count++] = begin + startPos;
+ }
+ return notZero;
+ } else if (str[begin] != NUMBER_ZERO) {
if (!(numberFlag & NUMBER_OMIT_ONE) || multiChar == 0 || str[begin] != NUMBER_ONE) {
dst[count] = numberChar[str[begin] - NUMBER_ZERO];
offset[count++] = begin + startPos;
@@ -172,7 +197,7 @@ sal_Bool SAL_CALL NumToText_CJK::numberMaker(const sal_Unicode *str, sal_Int32 b
dst[count] = multiChar;
offset[count++] = begin + startPos;
}
- } else if (!(numberFlag & NUMBER_OMIT_ZERO) && dst[count-1] != numberChar[0]) {
+ } else if (!(numberFlag & NUMBER_OMIT_ZERO) && count > 0 && dst[count-1] != numberChar[0]) {
dst[count] = numberChar[0];
offset[count++] = begin + startPos;
}
@@ -180,17 +205,17 @@ sal_Bool SAL_CALL NumToText_CJK::numberMaker(const sal_Unicode *str, sal_Int32 b
} else {
sal_Bool printPower = sal_False;
sal_Int16 last = 0;
- for (sal_Int16 i = 1; i <= ExponentCount_CJK; i++) {
- sal_Int32 tmp = len - (i == ExponentCount_CJK ? 0 : MultiplierExponent_CJK[i]);
+ for (sal_Int16 i = 1; i <= exponentCount; i++) {
+ sal_Int32 tmp = len - (i == exponentCount ? 0 : multiplierExponent[i]);
if (tmp > 0) {
printPower |= numberMaker(str, begin, tmp, dst, count,
- (i == ExponentCount_CJK ? 0 : multiplierChar[i]), offset, startPos);
+ (i == exponentCount ? 0 : multiplierChar[i]), offset, startPos);
begin += tmp;
len -= tmp;
}
}
if (printPower) {
- if (dst[count-1] == numberChar[0])
+ if (count > 0 && dst[count-1] == numberChar[0])
count--;
if (multiChar > 0) {
dst[count] = multiChar;
@@ -201,32 +226,36 @@ sal_Bool SAL_CALL NumToText_CJK::numberMaker(const sal_Unicode *str, sal_Int32 b
}
}
-#define TRANSLITERATION_NUMTOTEXT( name, _number, flag ) \
+#define TRANSLITERATION_NUMTOTEXT( name, _number, _short, flag ) \
NumToText##name::NumToText##name() \
{ \
number = NumberChar_##_number; \
numberChar = NumberChar[NumberChar_##_number]; \
- multiplierChar = MultiplierChar_CJK[Multiplier_##_number]; \
+ multiplierChar = MultiplierChar_##_short[Multiplier_##_number]; \
+ exponentCount = ExponentCount_##_short; \
+ multiplierExponent = MultiplierExponent_##_short; \
numberFlag = flag; \
transliterationName = "NumToText"#name; \
implementationName = "com.sun.star.i18n.Transliteration.NumToText"#name; \
}
-TRANSLITERATION_NUMTOTEXT( Lower_zh_CN, Lower_zh, 0 )
-TRANSLITERATION_NUMTOTEXT( Upper_zh_CN, Upper_zh, 0 )
-TRANSLITERATION_NUMTOTEXT( Lower_zh_TW, Lower_zh, 0 )
-TRANSLITERATION_NUMTOTEXT( Upper_zh_TW, Upper_zh_TW, 0 )
+TRANSLITERATION_NUMTOTEXT( Lower_zh_CN, Lower_zh, CJK, 0 )
+TRANSLITERATION_NUMTOTEXT( Upper_zh_CN, Upper_zh, CJK, 0 )
+TRANSLITERATION_NUMTOTEXT( Lower_zh_TW, Lower_zh, CJK, 0 )
+TRANSLITERATION_NUMTOTEXT( Upper_zh_TW, Upper_zh_TW, CJK, 0 )
#define Multiplier_Lower_ko Multiplier_Upper_zh_TW
#define Multiplier_Upper_ko Multiplier_Upper_zh_TW
-TRANSLITERATION_NUMTOTEXT( FormalLower_ko, Lower_ko, NUMBER_OMIT_ZERO )
-TRANSLITERATION_NUMTOTEXT( FormalUpper_ko, Upper_ko, NUMBER_OMIT_ZERO )
-TRANSLITERATION_NUMTOTEXT( FormalHangul_ko, Hangul_ko, NUMBER_OMIT_ZERO )
+TRANSLITERATION_NUMTOTEXT( FormalLower_ko, Lower_ko, CJK, NUMBER_OMIT_ZERO )
+TRANSLITERATION_NUMTOTEXT( FormalUpper_ko, Upper_ko, CJK, NUMBER_OMIT_ZERO )
+TRANSLITERATION_NUMTOTEXT( FormalHangul_ko, Hangul_ko, CJK, NUMBER_OMIT_ZERO )
#define NUMBER_OMIT_ALL ( NUMBER_OMIT_ZERO|NUMBER_OMIT_ONE|NUMBER_OMIT_ONLY_ZERO )
-TRANSLITERATION_NUMTOTEXT( InformalLower_ko, Lower_ko, NUMBER_OMIT_ALL )
-TRANSLITERATION_NUMTOTEXT( InformalUpper_ko, Upper_ko, NUMBER_OMIT_ALL )
-TRANSLITERATION_NUMTOTEXT( InformalHangul_ko, Hangul_ko, NUMBER_OMIT_ALL )
-TRANSLITERATION_NUMTOTEXT( KanjiLongTraditional_ja_JP, Traditional_ja, NUMBER_OMIT_ALL )
-TRANSLITERATION_NUMTOTEXT( KanjiLongModern_ja_JP, Modern_ja, NUMBER_OMIT_ALL )
-TRANSLITERATION_NUMTOTEXT( Date_zh, Lower_zh, NUMBER_OMIT_ALL )
+TRANSLITERATION_NUMTOTEXT( InformalLower_ko, Lower_ko, CJK, NUMBER_OMIT_ALL )
+TRANSLITERATION_NUMTOTEXT( InformalUpper_ko, Upper_ko, CJK, NUMBER_OMIT_ALL )
+TRANSLITERATION_NUMTOTEXT( InformalHangul_ko, Hangul_ko, CJK, NUMBER_OMIT_ALL )
+TRANSLITERATION_NUMTOTEXT( KanjiLongTraditional_ja_JP, Traditional_ja, CJK, NUMBER_OMIT_ALL )
+TRANSLITERATION_NUMTOTEXT( KanjiLongModern_ja_JP, Modern_ja, CJK, NUMBER_OMIT_ALL )
+TRANSLITERATION_NUMTOTEXT( Date_zh, Lower_zh, CJK, NUMBER_OMIT_ALL )
+TRANSLITERATION_NUMTOTEXT( KanjiShortTraditional_ja_JP, Traditional_ja, short_CJK, NUMBER_OMIT_ALL )
+TRANSLITERATION_NUMTOTEXT( KanjiShortModern_ja_JP, Modern_ja, short_CJK, NUMBER_OMIT_ALL )
#undef TRANSLITERATION_NUMTOTEXT
#define TRANSLITERATION_NUMTOTEXT( name ) \