? unxlngi6.pro
Index: inc/transliteration_OneToOne.hxx
===================================================================
RCS file: /cvsroot/ipa2007/i18npool/inc/transliteration_OneToOne.hxx,v
retrieving revision 1.1.1.1
retrieving revision 1.1.4.1
diff -u -r1.1.1.1 -r1.1.4.1
--- inc/transliteration_OneToOne.hxx 16 Aug 2007 02:34:23 -0000 1.1.1.1
+++ inc/transliteration_OneToOne.hxx 4 Sep 2007 12:13:06 -0000 1.1.4.1
@@ -95,6 +95,18 @@
#if defined( TRANSLITERATION_halfwidthToFullwidth ) || defined( TRANSLITERATION_ALL )
TRANSLITERATION_ONETOONE(halfwidthToFullwidth)
#endif
+#if defined( TRANSLITERATION_fullwidthKatakanaToHalfwidthKatakana ) || defined( TRANSLITERATION_ALL )
+TRANSLITERATION_ONETOONE( fullwidthKatakanaToHalfwidthKatakana )
+#endif
+#if defined( TRANSLITERATION_halfwidthKatakanaToFullwidthKatakana ) || defined( TRANSLITERATION_ALL )
+TRANSLITERATION_ONETOONE(halfwidthKatakanaToFullwidthKatakana)
+#endif
+#if defined( TRANSLITERATION_fullwidthToHalfwidthLikeASC ) || defined( TRANSLITERATION_ALL )
+TRANSLITERATION_ONETOONE( fullwidthToHalfwidthLikeASC )
+#endif
+#if defined( TRANSLITERATION_halfwidthToFullwidthLikeJIS ) || defined( TRANSLITERATION_ALL )
+TRANSLITERATION_ONETOONE( halfwidthToFullwidthLikeJIS )
+#endif
#undef TRANSLITERATION_ONETOONE
#define TRANSLITERATION_ONETOONE( name ) \
Index: source/localedata/data/ja_JP.xml
===================================================================
RCS file: /cvsroot/ipa2007/i18npool/source/localedata/data/ja_JP.xml,v
retrieving revision 1.1.1.1
retrieving revision 1.1.4.1
diff -u -r1.1.1.1 -r1.1.4.1
--- source/localedata/data/ja_JP.xml 16 Aug 2007 02:34:24 -0000 1.1.1.1
+++ source/localedata/data/ja_JP.xml 5 Sep 2007 12:37:17 -0000 1.1.4.1
@@ -474,6 +474,10 @@
+
+
+
+
Index: source/registerservices/registerservices.cxx
===================================================================
RCS file: /cvsroot/ipa2007/i18npool/source/registerservices/registerservices.cxx,v
retrieving revision 1.1.1.1
retrieving revision 1.1.4.1
diff -u -r1.1.1.1 -r1.1.4.1
--- source/registerservices/registerservices.cxx 16 Aug 2007 02:34:25 -0000 1.1.1.1
+++ source/registerservices/registerservices.cxx 4 Sep 2007 12:13:06 -0000 1.1.4.1
@@ -296,6 +296,11 @@
IMPL_CREATEINSTANCE( NumToTextTianGan_zh )
IMPL_CREATEINSTANCE( NumToTextDiZi_zh )
+IMPL_CREATEINSTANCE( fullwidthKatakanaToHalfwidthKatakana )
+IMPL_CREATEINSTANCE( halfwidthKatakanaToFullwidthKatakana )
+IMPL_CREATEINSTANCE( fullwidthToHalfwidthLikeASC )
+IMPL_CREATEINSTANCE( halfwidthToFullwidthLikeJIS )
+
IMPL_CREATEINSTANCE_MSF( OrdinalSuffix )
static const struct InstancesArray {
@@ -557,6 +562,18 @@
"com.sun.star.i18n.OrdinalSuffix",
& OrdinalSuffix_CreateInstance },
+ { TRLT_SERVICELNAME_L10N,
+ TRLT_IMPLNAME_PREFIX "FULLWIDTHKATAKANA_HALFWIDTHKATAKANA",
+ &fullwidthKatakanaToHalfwidthKatakana_CreateInstance },
+ { TRLT_SERVICELNAME_L10N,
+ TRLT_IMPLNAME_PREFIX "HALFWIDTHKATAKANA_FULLWIDTHKATAKANA",
+ &halfwidthKatakanaToFullwidthKatakana_CreateInstance },
+ { TRLT_SERVICELNAME_L10N,
+ TRLT_IMPLNAME_PREFIX "FULLWIDTH_HALFWIDTH_LIKE_ASC",
+ &fullwidthToHalfwidthLikeASC_CreateInstance },
+ { TRLT_SERVICELNAME_L10N,
+ TRLT_IMPLNAME_PREFIX "HALFWIDTH_FULLWIDTH_LIKE_JIS",
+ &halfwidthToFullwidthLikeJIS_CreateInstance },
// add here new services !!
{ 0, 0, 0 }
};
Index: source/transliteration/fullwidthToHalfwidth.cxx
===================================================================
RCS file: /cvsroot/ipa2007/i18npool/source/transliteration/fullwidthToHalfwidth.cxx,v
retrieving revision 1.1.1.1
retrieving revision 1.1.4.3
diff -u -r1.1.1.1 -r1.1.4.3
--- source/transliteration/fullwidthToHalfwidth.cxx 16 Aug 2007 02:34:24 -0000 1.1.1.1
+++ source/transliteration/fullwidthToHalfwidth.cxx 5 Sep 2007 12:37:17 -0000 1.1.4.3
@@ -41,6 +41,8 @@
#include
#define TRANSLITERATION_fullwidthToHalfwidth
+#define TRANSLITERATION_fullwidthKatakanaToHalfwidthKatakana
+#define TRANSLITERATION_fullwidthToHalfwidthLikeASC
#include
using namespace com::sun::star::uno;
@@ -86,5 +88,77 @@
return transliteration_OneToOne::transliterateChar2Char(inChar);
}
+
+fullwidthKatakanaToHalfwidthKatakana::fullwidthKatakanaToHalfwidthKatakana()
+{
+ func = (TransFunc) 0;
+ table = &widthfolding::getfullKana2halfKanaTable();
+ transliterationName = "fullwidthKatakanaToHalfwidthKatakana";
+ implementationName = "com.sun.star.i18n.Transliteration.FULLWIDTHKATAKANA_HALFWIDTHKATAKANA";
+}
+
+/**
+ * Transliterate fullwidth katakana to halfwidth katakana.
+ */
+OUString SAL_CALL
+fullwidthKatakanaToHalfwidthKatakana::transliterate( const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, Sequence< sal_Int32 >& offset )
+ throw(RuntimeException)
+{
+ // Decomposition: GA --> KA + voice-mark
+ const OUString& newStr = widthfolding::decompose_ja_voiced_sound_marks (inStr, startPos, nCount, offset, useOffset);
+
+ // One to One mapping
+ useOffset = sal_False;
+ const OUString &tmp = transliteration_OneToOne::transliterate( newStr, 0, newStr.getLength(), offset);
+ useOffset = sal_True;
+ return tmp;
+}
+
+sal_Unicode SAL_CALL
+fullwidthKatakanaToHalfwidthKatakana::transliterateChar2Char( sal_Unicode inChar )
+ throw(RuntimeException, MultipleCharsOutputException)
+{
+ sal_Unicode newChar = widthfolding::decompose_ja_voiced_sound_marksChar2Char (inChar);
+ if (newChar == 0xFFFF)
+ throw MultipleCharsOutputException();
+ return transliteration_OneToOne::transliterateChar2Char(inChar);
+}
+
+fullwidthToHalfwidthLikeASC::fullwidthToHalfwidthLikeASC()
+{
+ func = (TransFunc) 0;
+ table = &widthfolding::getfull2halfTableForASC();
+ transliterationName = "fullwidthToHalfwidthLikeASC";
+ implementationName = "com.sun.star.i18n.Transliteration.FULLWIDTH_HALFWIDTH_LIKE_ASC";
+}
+
+/**
+ * Transliterate fullwidth to halfwidth like Excel's ASC function.
+ */
+OUString SAL_CALL
+fullwidthToHalfwidthLikeASC::transliterate( const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, Sequence< sal_Int32 >& offset )
+ throw(RuntimeException)
+{
+ // Decomposition: GA --> KA + voice-mark
+ const OUString& newStr = widthfolding::decompose_ja_voiced_sound_marks (inStr, startPos, nCount, offset, useOffset);
+
+ // One to One mapping
+ useOffset = sal_False;
+ const OUString &tmp = transliteration_OneToOne::transliterate( newStr, 0, newStr.getLength(), offset);
+ useOffset = sal_True;
+
+ return tmp;
+}
+
+sal_Unicode SAL_CALL
+fullwidthToHalfwidthLikeASC::transliterateChar2Char( sal_Unicode inChar )
+ throw(RuntimeException, MultipleCharsOutputException)
+{
+ sal_Unicode newChar = widthfolding::decompose_ja_voiced_sound_marksChar2Char (inChar);
+ if (newChar == 0xFFFF)
+ throw MultipleCharsOutputException();
+ return transliteration_OneToOne::transliterateChar2Char(inChar);
+}
+
} } } }
Index: source/transliteration/halfwidthToFullwidth.cxx
===================================================================
RCS file: /cvsroot/ipa2007/i18npool/source/transliteration/halfwidthToFullwidth.cxx,v
retrieving revision 1.1.1.1
retrieving revision 1.1.4.4
diff -u -r1.1.1.1 -r1.1.4.4
--- source/transliteration/halfwidthToFullwidth.cxx 16 Aug 2007 02:34:24 -0000 1.1.1.1
+++ source/transliteration/halfwidthToFullwidth.cxx 7 Sep 2007 12:52:10 -0000 1.1.4.4
@@ -41,6 +41,8 @@
#include
#define TRANSLITERATION_halfwidthToFullwidth
+#define TRANSLITERATION_halfwidthKatakanaToFullwidthKatakana
+#define TRANSLITERATION_halfwidthToFullwidthLikeJIS
#include
using namespace com::sun::star::uno;
@@ -78,4 +80,64 @@
return transliteration_OneToOne::transliterateChar2Char(inChar);
}
+
+halfwidthKatakanaToFullwidthKatakana::halfwidthKatakanaToFullwidthKatakana()
+{
+ func = (TransFunc) 0;
+ table = &widthfolding::gethalfKana2fullKanaTable();
+ transliterationName = "halfwidthKatakanaToFullwidthKatakana";
+ implementationName = "com.sun.star.i18n.Transliteration.HALFWIDTHKATAKANA_FULLWIDTHKATAKANA";
+}
+
+OUString SAL_CALL
+halfwidthKatakanaToFullwidthKatakana::transliterate( const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, Sequence< sal_Int32 >& offset )
+ throw(RuntimeException)
+{
+ sal_Bool _useOffset = useOffset;
+ // One to One mapping
+ useOffset = sal_False;
+ const OUString& newStr = transliteration_OneToOne::transliterate( inStr, startPos, nCount, offset);
+ useOffset = _useOffset;
+
+ // Composition: KA + voice-mark --> GA
+ return widthfolding::compose_ja_voiced_sound_marks ( newStr, 0, newStr.getLength(), offset, _useOffset );
+}
+
+sal_Unicode SAL_CALL
+halfwidthKatakanaToFullwidthKatakana::transliterateChar2Char( sal_Unicode inChar)
+ throw(RuntimeException, MultipleCharsOutputException)
+{
+ return transliteration_OneToOne::transliterateChar2Char(inChar);
+}
+
+
+halfwidthToFullwidthLikeJIS::halfwidthToFullwidthLikeJIS()
+{
+ func = (TransFunc) 0;
+ table = &widthfolding::gethalf2fullTableForJIS();
+ transliterationName = "halfwidthToFullwidthLikeJIS";
+ implementationName = "com.sun.star.i18n.Transliteration.HALFWIDTH_FULLWIDTH_LIKE_JIS";
+}
+
+OUString SAL_CALL
+halfwidthToFullwidthLikeJIS::transliterate( const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, Sequence< sal_Int32 >& offset )
+ throw(RuntimeException)
+{
+ sal_Bool _useOffset = useOffset;
+ // One to One mapping
+ useOffset = sal_False;
+ const OUString& newStr = transliteration_OneToOne::transliterate( inStr, startPos, nCount, offset);
+ useOffset = _useOffset;
+
+ // Composition: KA + voice-mark --> GA
+ return widthfolding::compose_ja_voiced_sound_marks ( newStr, 0, newStr.getLength(), offset, _useOffset, WIDTHFOLDNIG_DONT_USE_COMBINED_VU );
+}
+
+sal_Unicode SAL_CALL
+halfwidthToFullwidthLikeJIS::transliterateChar2Char( sal_Unicode inChar)
+ throw(RuntimeException, MultipleCharsOutputException)
+{
+ return transliteration_OneToOne::transliterateChar2Char(inChar);
+}
+
} } } }