CWS-TOOLING: integrate CWS locales31

2008-12-10 14:56:44 +0100 er  r265193 : calling convention mismatch
2008-12-08 12:04:56 +0100 er  r264984 : #i96840# classify some extra languages as CTL
2008-12-05 19:54:02 +0100 erack  r264916 : ImpSvNumberformatScan::ScanType: do not miscategorize as automtic currency if currency symbol in General string, such as R in Standard
2008-12-04 12:07:05 +0100 erack  r264831 : CWS-TOOLING: rebase CWS locales31 to trunk@264807 (milestone: DEV300:m37)
2008-12-03 16:14:17 +0100 erack  r264797 : #i93694# update script+language -> unicode digit mapping; patch from <hdu>
2008-11-25 02:01:18 +0100 erack  r264270 : #i83349# apply remaining parts of the patch, now that we use ICU 4.0; contributed by <kstribley>
2008-11-25 01:38:20 +0100 erack  r264269 : #i93694# test the bit, not the constant ...
2008-11-24 10:34:58 +0100 erack  r264211 : #i93694# LANGUAGE_ARABIC is gone
2008-11-24 01:39:25 +0100 erack  r264192 : #i94435# LANGUAGE_SPANISH now is an alias of LANGUAGE_SPANISH_MODERN, need LANGUAGE_SPANISH_DATED in switch case if both are to be used
2008-11-23 22:54:17 +0100 erack  r264190 : CWS-TOOLING: rebase CWS locales31 to trunk@263288 (milestone: DEV300:m35)
2008-11-23 20:23:28 +0100 erack  r264189 : migrate CWS locales31 to SVN
This commit is contained in:
Jens-Heiner Rechtien 2009-01-06 12:54:16 +00:00
parent 3dea05ab28
commit 4e1fd2fa16
47 changed files with 3047 additions and 522 deletions

View File

@ -365,72 +365,62 @@ namespace
return nChar; return nChar;
sal_Unicode nOffset(0); sal_Unicode nOffset(0);
switch( eLang ) // eLang & LANGUAGE_MASK_PRIMARY catches language independent of region.
// CAVEAT! To some like Mongolian MS assigned the same primary language
// although the script type is different!
switch( eLang & LANGUAGE_MASK_PRIMARY )
{ {
default: default:
break; break;
case LANGUAGE_ARABIC: case LANGUAGE_ARABIC_SAUDI_ARABIA & LANGUAGE_MASK_PRIMARY:
// FALLTHROUGS intended case LANGUAGE_URDU & LANGUAGE_MASK_PRIMARY:
case LANGUAGE_ARABIC_SAUDI_ARABIA: case LANGUAGE_PUNJABI & LANGUAGE_MASK_PRIMARY: //???
case LANGUAGE_ARABIC_IRAQ:
case LANGUAGE_ARABIC_EGYPT:
case LANGUAGE_ARABIC_LIBYA:
case LANGUAGE_ARABIC_ALGERIA:
case LANGUAGE_ARABIC_MOROCCO:
case LANGUAGE_ARABIC_TUNISIA:
case LANGUAGE_ARABIC_OMAN:
case LANGUAGE_ARABIC_YEMEN:
case LANGUAGE_ARABIC_SYRIA:
case LANGUAGE_ARABIC_JORDAN:
case LANGUAGE_ARABIC_LEBANON:
case LANGUAGE_ARABIC_KUWAIT:
case LANGUAGE_ARABIC_UAE:
case LANGUAGE_ARABIC_BAHRAIN:
case LANGUAGE_ARABIC_QATAR:
case LANGUAGE_URDU:
case LANGUAGE_URDU_PAKISTAN:
case LANGUAGE_URDU_INDIA:
case LANGUAGE_PUNJABI: //???
nOffset = 0x0660 - '0'; // arabic/persian/urdu nOffset = 0x0660 - '0'; // arabic/persian/urdu
break; break;
case LANGUAGE_BENGALI: case LANGUAGE_BENGALI & LANGUAGE_MASK_PRIMARY:
nOffset = 0x09E6 - '0'; // bengali nOffset = 0x09E6 - '0'; // bengali
break; break;
case LANGUAGE_HINDI: case LANGUAGE_BURMESE & LANGUAGE_MASK_PRIMARY:
nOffset = 0x1040 - '0'; // burmese
break;
case LANGUAGE_HINDI & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0966 - '0'; // devanagari nOffset = 0x0966 - '0'; // devanagari
break; break;
case LANGUAGE_GUJARATI: case LANGUAGE_GUJARATI & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0AE6 - '0'; // gujarati nOffset = 0x0AE6 - '0'; // gujarati
break; break;
case LANGUAGE_KANNADA: case LANGUAGE_KANNADA & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0CE6 - '0'; // kannada nOffset = 0x0CE6 - '0'; // kannada
break; break;
case LANGUAGE_KHMER: case LANGUAGE_KHMER & LANGUAGE_MASK_PRIMARY:
nOffset = 0x17E0 - '0'; // khmer nOffset = 0x17E0 - '0'; // khmer
break; break;
case LANGUAGE_LAO: case LANGUAGE_LAO & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0ED0 - '0'; // lao nOffset = 0x0ED0 - '0'; // lao
break; break;
case LANGUAGE_MALAYALAM: case LANGUAGE_MALAYALAM & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0D66 - '0'; // malayalam nOffset = 0x0D66 - '0'; // malayalam
break; break;
case LANGUAGE_MONGOLIAN: case LANGUAGE_MONGOLIAN & LANGUAGE_MASK_PRIMARY:
if (eLang == LANGUAGE_MONGOLIAN_MONGOLIAN)
nOffset = 0x1810 - '0'; // mongolian nOffset = 0x1810 - '0'; // mongolian
else
nOffset = 0; // mongolian cyrillic
break; break;
case LANGUAGE_ORIYA: case LANGUAGE_ORIYA & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0B66 - '0'; // oriya nOffset = 0x0B66 - '0'; // oriya
break; break;
case LANGUAGE_TAMIL: case LANGUAGE_TAMIL & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0BE7 - '0'; // tamil nOffset = 0x0BE7 - '0'; // tamil
break; break;
case LANGUAGE_TELUGU: case LANGUAGE_TELUGU & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0C66 - '0'; // telugu nOffset = 0x0C66 - '0'; // telugu
break; break;
case LANGUAGE_THAI: case LANGUAGE_THAI & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0E50 - '0'; // thai nOffset = 0x0E50 - '0'; // thai
break; break;
case LANGUAGE_TIBETAN: case LANGUAGE_TIBETAN & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0F20 - '0'; // tibetan nOffset = 0x0F20 - '0'; // tibetan
break; break;
} }

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: calendar_gregorian.hxx,v $ * $RCSfile: calendar_gregorian.hxx,v $
* $Revision: 1.16 $ * $Revision: 1.16.24.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -47,6 +47,8 @@ struct Era {
sal_Int32 day; sal_Int32 day;
}; };
const sal_Int16 FIELD_INDEX_COUNT = CalendarFieldIndex::FIELD_COUNT2;
class Calendar_gregorian : public CalendarImpl class Calendar_gregorian : public CalendarImpl
{ {
public: public:
@ -61,7 +63,7 @@ public:
*/ */
~Calendar_gregorian(); ~Calendar_gregorian();
// Methods // Methods in XCalendar
virtual void SAL_CALL loadCalendar(const rtl::OUString& uniqueID, const com::sun::star::lang::Locale& rLocale) throw(com::sun::star::uno::RuntimeException); virtual void SAL_CALL loadCalendar(const rtl::OUString& uniqueID, const com::sun::star::lang::Locale& rLocale) throw(com::sun::star::uno::RuntimeException);
virtual void SAL_CALL setDateTime(double nTimeInDays) throw(com::sun::star::uno::RuntimeException); virtual void SAL_CALL setDateTime(double nTimeInDays) throw(com::sun::star::uno::RuntimeException);
virtual double SAL_CALL getDateTime() throw(com::sun::star::uno::RuntimeException); virtual double SAL_CALL getDateTime() throw(com::sun::star::uno::RuntimeException);
@ -96,18 +98,33 @@ protected:
const sal_Char* cCalendar; const sal_Char* cCalendar;
com::sun::star::lang::Locale aLocale; com::sun::star::lang::Locale aLocale;
sal_uInt32 fieldSet; sal_uInt32 fieldSet;
sal_Int16 fieldValue[CalendarFieldIndex::FIELD_COUNT]; sal_Int16 fieldValue[FIELD_INDEX_COUNT];
sal_Int16 fieldSetValue[CalendarFieldIndex::FIELD_COUNT]; sal_Int16 fieldSetValue[FIELD_INDEX_COUNT];
virtual void SAL_CALL mapToGregorian() throw(com::sun::star::uno::RuntimeException);
virtual void SAL_CALL mapFromGregorian() throw(com::sun::star::uno::RuntimeException); virtual void mapToGregorian() throw(com::sun::star::uno::RuntimeException);
void SAL_CALL getValue() throw(com::sun::star::uno::RuntimeException); virtual void mapFromGregorian() throw(com::sun::star::uno::RuntimeException);
void getValue() throw(com::sun::star::uno::RuntimeException);
private: private:
// submit fieldSetValue array according to fieldSet
void SAL_CALL submitFields() throw(com::sun::star::uno::RuntimeException);
// submit fieldSetValue array according to fieldSet, plus YMDhms if >=0
void SAL_CALL submitValues( sal_Int32 nYear, sal_Int32 nMonth, sal_Int32 nDay, sal_Int32 nHour, sal_Int32 nMinute, sal_Int32 nSecond, sal_Int32 nMilliSecond) throw(com::sun::star::uno::RuntimeException);
void SAL_CALL setValue() throw(com::sun::star::uno::RuntimeException);
Calendar aCalendar; Calendar aCalendar;
/** Submit fieldSetValue array according to fieldSet. */
void submitFields() throw(com::sun::star::uno::RuntimeException);
/** Submit fieldSetValue array according to fieldSet, plus YMDhms if >=0,
plus zone and DST if != 0 */
void submitValues( sal_Int32 nYear, sal_Int32 nMonth, sal_Int32 nDay, sal_Int32 nHour, sal_Int32 nMinute, sal_Int32 nSecond, sal_Int32 nMilliSecond, sal_Int32 nZone, sal_Int32 nDST) throw(com::sun::star::uno::RuntimeException);
/** Set fields internally. */
void setValue() throw(com::sun::star::uno::RuntimeException);
/** Obtain combined field values for timezone offset (minutes+secondmillis)
in milliseconds and whether fields were set. */
bool getZoneOffset( sal_Int32 & o_nOffset ) const;
/** Obtain combined field values for DST offset (minutes+secondmillis) in
milliseconds and whether fields were set. */
bool getDSTOffset( sal_Int32 & o_nOffset ) const;
/** Used by getZoneOffset() and getDSTOffset(). Parent is
CalendarFieldIndex for offset in minutes, child is CalendarFieldIndex
for offset in milliseconds. */
bool getCombinedOffset( sal_Int32 & o_nOffset, sal_Int16 nParentFieldIndex, sal_Int16 nChildFieldIndex ) const;
}; };
// ---------------------------------------------------- // ----------------------------------------------------

View File

@ -47,8 +47,8 @@ public:
Calendar_hijri(); Calendar_hijri();
protected: protected:
void SAL_CALL mapToGregorian() throw(com::sun::star::uno::RuntimeException); void mapToGregorian() throw(com::sun::star::uno::RuntimeException);
void SAL_CALL mapFromGregorian() throw(com::sun::star::uno::RuntimeException); void mapFromGregorian() throw(com::sun::star::uno::RuntimeException);
// radians per degree (pi/180) // radians per degree (pi/180)
static const double RadPerDeg; static const double RadPerDeg;

View File

@ -48,8 +48,8 @@ public:
virtual rtl::OUString SAL_CALL getDisplayString( sal_Int32 nCalendarDisplayCode, sal_Int16 nNativeNumberMode ) throw (com::sun::star::uno::RuntimeException); virtual rtl::OUString SAL_CALL getDisplayString( sal_Int32 nCalendarDisplayCode, sal_Int16 nNativeNumberMode ) throw (com::sun::star::uno::RuntimeException);
protected: protected:
void SAL_CALL mapToGregorian() throw(com::sun::star::uno::RuntimeException); void mapToGregorian() throw(com::sun::star::uno::RuntimeException);
void SAL_CALL mapFromGregorian() throw(com::sun::star::uno::RuntimeException); void mapFromGregorian() throw(com::sun::star::uno::RuntimeException);
}; };
} } } } } } } }

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: lang.h,v $ * $RCSfile: lang.h,v $
* $Revision: 1.12 $ * $Revision: 1.12.24.7 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -117,7 +117,6 @@ typedef unsigned short LanguageType;
#define LANGUAGE_ALBANIAN 0x041C #define LANGUAGE_ALBANIAN 0x041C
#define LANGUAGE_ALSATIAN_FRANCE 0x0484 #define LANGUAGE_ALSATIAN_FRANCE 0x0484
#define LANGUAGE_AMHARIC_ETHIOPIA 0x045E #define LANGUAGE_AMHARIC_ETHIOPIA 0x045E
#define LANGUAGE_ARABIC 0x0001 /* primary only, not a locale! */
#define LANGUAGE_ARABIC_ALGERIA 0x1401 #define LANGUAGE_ARABIC_ALGERIA 0x1401
#define LANGUAGE_ARABIC_BAHRAIN 0x3C01 #define LANGUAGE_ARABIC_BAHRAIN 0x3C01
#define LANGUAGE_ARABIC_EGYPT 0x0C01 #define LANGUAGE_ARABIC_EGYPT 0x0C01
@ -134,6 +133,7 @@ typedef unsigned short LanguageType;
#define LANGUAGE_ARABIC_TUNISIA 0x1C01 #define LANGUAGE_ARABIC_TUNISIA 0x1C01
#define LANGUAGE_ARABIC_UAE 0x3801 #define LANGUAGE_ARABIC_UAE 0x3801
#define LANGUAGE_ARABIC_YEMEN 0x2401 #define LANGUAGE_ARABIC_YEMEN 0x2401
#define LANGUAGE_ARABIC_PRIMARY_ONLY 0x0001 /* primary only, not a locale! */
#define LANGUAGE_ARMENIAN 0x042B #define LANGUAGE_ARMENIAN 0x042B
#define LANGUAGE_ASSAMESE 0x044D #define LANGUAGE_ASSAMESE 0x044D
#define LANGUAGE_AZERI 0x002C /* primary only, not a locale! */ #define LANGUAGE_AZERI 0x002C /* primary only, not a locale! */
@ -323,7 +323,7 @@ typedef unsigned short LanguageType;
#define LANGUAGE_UPPER_SORBIAN_GERMANY 0x042E /* obsoletes LANGUAGE_USER_UPPER_SORBIAN 0x0623 */ #define LANGUAGE_UPPER_SORBIAN_GERMANY 0x042E /* obsoletes LANGUAGE_USER_UPPER_SORBIAN 0x0623 */
#define LANGUAGE_LOWER_SORBIAN_GERMANY 0x082E /* obsoletes LANGUAGE_USER_LOWER_SORBIAN 0x0624. NOTE: the primary ID is identical to Upper Sorbian, which is not quite correct because they're distinct languages */ #define LANGUAGE_LOWER_SORBIAN_GERMANY 0x082E /* obsoletes LANGUAGE_USER_LOWER_SORBIAN 0x0624. NOTE: the primary ID is identical to Upper Sorbian, which is not quite correct because they're distinct languages */
#define LANGUAGE_SORBIAN LANGUAGE_USER_UPPER_SORBIAN /* a strange MS definition */ #define LANGUAGE_SORBIAN LANGUAGE_USER_UPPER_SORBIAN /* a strange MS definition */
#define LANGUAGE_SPANISH 0x040A #define LANGUAGE_SPANISH_DATED 0x040A /* old collation, not supported, see #i94435# */
#define LANGUAGE_SPANISH_ARGENTINA 0x2C0A #define LANGUAGE_SPANISH_ARGENTINA 0x2C0A
#define LANGUAGE_SPANISH_BOLIVIA 0x400A #define LANGUAGE_SPANISH_BOLIVIA 0x400A
#define LANGUAGE_SPANISH_CHILE 0x340A #define LANGUAGE_SPANISH_CHILE 0x340A
@ -345,6 +345,7 @@ typedef unsigned short LanguageType;
#define LANGUAGE_SPANISH_UNITED_STATES 0x540A #define LANGUAGE_SPANISH_UNITED_STATES 0x540A
#define LANGUAGE_SPANISH_URUGUAY 0x380A #define LANGUAGE_SPANISH_URUGUAY 0x380A
#define LANGUAGE_SPANISH_VENEZUELA 0x200A #define LANGUAGE_SPANISH_VENEZUELA 0x200A
#define LANGUAGE_SPANISH LANGUAGE_SPANISH_MODERN /* modern collation, see #i94435# */
#define LANGUAGE_SWAHILI 0x0441 /* Kenya */ #define LANGUAGE_SWAHILI 0x0441 /* Kenya */
#define LANGUAGE_SWEDISH 0x041D #define LANGUAGE_SWEDISH 0x041D
#define LANGUAGE_SWEDISH_FINLAND 0x081D #define LANGUAGE_SWEDISH_FINLAND 0x081D
@ -370,7 +371,6 @@ typedef unsigned short LanguageType;
#define LANGUAGE_URDU 0x0020 /* primary only, not a locale! */ #define LANGUAGE_URDU 0x0020 /* primary only, not a locale! */
#define LANGUAGE_URDU_INDIA 0x0820 #define LANGUAGE_URDU_INDIA 0x0820
#define LANGUAGE_URDU_PAKISTAN 0x0420 #define LANGUAGE_URDU_PAKISTAN 0x0420
#define LANGUAGE_UZBEK 0x0043 /* primary only, not a locale! */
#define LANGUAGE_UZBEK_CYRILLIC 0x0843 #define LANGUAGE_UZBEK_CYRILLIC 0x0843
#define LANGUAGE_UZBEK_LATIN 0x0443 #define LANGUAGE_UZBEK_LATIN 0x0443
#define LANGUAGE_VENDA 0x0433 #define LANGUAGE_VENDA 0x0433
@ -490,5 +490,16 @@ typedef unsigned short LanguageType;
#define LANGUAGE_USER_MAITHILI_INDIA 0x0645 #define LANGUAGE_USER_MAITHILI_INDIA 0x0645
#define LANGUAGE_USER_SANTALI_INDIA 0x0646 #define LANGUAGE_USER_SANTALI_INDIA 0x0646
#define LANGUAGE_USER_TETUN_TIMOR_LESTE 0x0A40 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_TETUN)) */ #define LANGUAGE_USER_TETUN_TIMOR_LESTE 0x0A40 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_TETUN)) */
#define LANGUAGE_USER_TOK_PISIN 0x0647
#define LANGUAGE_USER_SHUSWAP 0x0648
#define LANGUAGE_USER_ARABIC_CHAD 0x8001 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
#define LANGUAGE_USER_ARABIC_COMOROS 0x8401 /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
#define LANGUAGE_USER_ARABIC_DJIBOUTI 0x8801 /* makeLangID( 0x22, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
#define LANGUAGE_USER_ARABIC_ERITREA 0x8C01 /* makeLangID( 0x23, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
#define LANGUAGE_USER_ARABIC_ISRAEL 0x9001 /* makeLangID( 0x24, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
#define LANGUAGE_USER_ARABIC_MAURITANIA 0x9401 /* makeLangID( 0x25, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
#define LANGUAGE_USER_ARABIC_PALESTINE 0x9801 /* makeLangID( 0x26, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
#define LANGUAGE_USER_ARABIC_SOMALIA 0x9C01 /* makeLangID( 0x27, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
#define LANGUAGE_USER_ARABIC_SUDAN 0xA001 /* makeLangID( 0x28, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
#endif /* INCLUDED_I18NPOOL_LANG_H */ #endif /* INCLUDED_I18NPOOL_LANG_H */

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: mslangid.hxx,v $ * $RCSfile: mslangid.hxx,v $
* $Revision: 1.5 $ * $Revision: 1.5.24.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -228,6 +228,10 @@ public:
static bool hasForbiddenCharacters( LanguageType nLang ); static bool hasForbiddenCharacters( LanguageType nLang );
/** Whether locale needs input sequence checking. CTL locales. */
static bool needsSequenceChecking( LanguageType nLang );
/** Get ::com::sun::star::i18n::ScriptType of locale. */ /** Get ::com::sun::star::i18n::ScriptType of locale. */
static sal_Int16 getScriptType( LanguageType nLang ); static sal_Int16 getScriptType( LanguageType nLang );

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: transliteration_caseignore.hxx,v $ * $RCSfile: transliteration_caseignore.hxx,v $
* $Revision: 1.5 $ * $Revision: 1.5.24.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -74,12 +74,6 @@ private:
throw(com::sun::star::uno::RuntimeException); throw(com::sun::star::uno::RuntimeException);
}; };
class Transliteration_simplecaseignore: public Transliteration_caseignore
{
public:
Transliteration_simplecaseignore();
};
} } } } } } } }
#endif #endif

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: xdictionary.hxx,v $ * $RCSfile: xdictionary.hxx,v $
* $Revision: 1.7 $ * $Revision: 1.7.24.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -37,17 +37,20 @@
namespace com { namespace sun { namespace star { namespace i18n { namespace com { namespace sun { namespace star { namespace i18n {
// Whether to use cell boundary code, currently unused but prepared.
#define USE_CELL_BOUNDARY_CODE 0
#define CACHE_MAX 32 // max cache structure number #define CACHE_MAX 32 // max cache structure number
#define DEFAULT_SIZE 256 // for boundary size, to avoid alloc and release memory #define DEFAULT_SIZE 256 // for boundary size, to avoid alloc and release memory
// cache structure. // cache structure.
typedef struct _WrodBreakCache { struct WordBreakCache {
sal_Bool SAL_CALL equals(const sal_Unicode *str, Boundary& boundary); // checking cached string sal_Bool equals(const sal_Unicode *str, Boundary& boundary); // checking cached string
sal_Int32 length; // contents length saved here. sal_Int32 length; // contents length saved here.
sal_Unicode *contents; // seperated segment contents. sal_Unicode *contents; // seperated segment contents.
sal_Int32* wordboundary; // word boundaries in segments. sal_Int32* wordboundary; // word boundaries in segments.
sal_Int32 size; // size of wordboundary sal_Int32 size; // size of wordboundary
} WordBreakCache; };
class xdictionary class xdictionary
{ {
@ -59,26 +62,33 @@ private:
const sal_Unicode* dataArea; const sal_Unicode* dataArea;
oslModule hModule; oslModule hModule;
Boundary boundary; Boundary boundary;
sal_Bool japaneseWordBreak;
#if USE_CELL_BOUNDARY_CODE
// For CTL breakiterator, where the word boundary should not be inside cell.
sal_Bool useCellBoundary; sal_Bool useCellBoundary;
sal_Int32* cellBoundary; sal_Int32* cellBoundary;
sal_Bool japaneseWordBreak; #endif
public: public:
xdictionary(const sal_Char *lang); xdictionary(const sal_Char *lang);
~xdictionary(); ~xdictionary();
Boundary SAL_CALL nextWord( const rtl::OUString& rText, sal_Int32 nPos, sal_Int16 wordType); Boundary nextWord( const rtl::OUString& rText, sal_Int32 nPos, sal_Int16 wordType);
Boundary SAL_CALL previousWord( const rtl::OUString& rText, sal_Int32 nPos, sal_Int16 wordType); Boundary previousWord( const rtl::OUString& rText, sal_Int32 nPos, sal_Int16 wordType);
Boundary SAL_CALL getWordBoundary( const rtl::OUString& rText, sal_Int32 nPos, sal_Int16 wordType, sal_Bool bDirection ); Boundary getWordBoundary( const rtl::OUString& rText, sal_Int32 nPos, sal_Int16 wordType, sal_Bool bDirection );
void SAL_CALL setCellBoundary(sal_Int32* cellBondary); void setJapaneseWordBreak();
void SAL_CALL setJapaneseWordBreak();
#if USE_CELL_BOUNDARY_CODE
void setCellBoundary(sal_Int32* cellArray);
#endif
private: private:
WordBreakCache cache[CACHE_MAX]; WordBreakCache cache[CACHE_MAX];
sal_Bool SAL_CALL seekSegment(const sal_Unicode *text, sal_Int32 pos, sal_Int32 len, Boundary& boundary); sal_Bool seekSegment(const sal_Unicode *text, sal_Int32 pos, sal_Int32 len, Boundary& boundary);
WordBreakCache& SAL_CALL getCache(const sal_Unicode *text, Boundary& boundary); WordBreakCache& getCache(const sal_Unicode *text, Boundary& boundary);
sal_Bool SAL_CALL exists(const sal_Unicode u); sal_Bool exists(const sal_Unicode u);
sal_Int32 SAL_CALL getLongestMatch(const sal_Unicode *text, sal_Int32 len); sal_Int32 getLongestMatch(const sal_Unicode *text, sal_Int32 len);
}; };
} } } } } } } }

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: xdictionary.cxx,v $ * $RCSfile: xdictionary.cxx,v $
* $Revision: 1.18.22.1 $ * $Revision: 1.18.24.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -90,8 +90,9 @@ xdictionary::xdictionary(const sal_Char *lang)
for (sal_Int32 i = 0; i < CACHE_MAX; i++) for (sal_Int32 i = 0; i < CACHE_MAX; i++)
cache[i].size = 0; cache[i].size = 0;
// for CTL breakiterator, which the word boundary should not inside cell. #if USE_CELL_BOUNDARY_CODE
useCellBoundary = sal_False; useCellBoundary = sal_False;
#endif
japaneseWordBreak = sal_False; japaneseWordBreak = sal_False;
} }
@ -105,7 +106,7 @@ xdictionary::~xdictionary() {
} }
} }
void SAL_CALL xdictionary::setJapaneseWordBreak() void xdictionary::setJapaneseWordBreak()
{ {
japaneseWordBreak = sal_True; japaneseWordBreak = sal_True;
} }
@ -118,8 +119,7 @@ sal_Bool xdictionary::exists(const sal_Unicode c) {
return exist; return exist;
} }
sal_Int32 SAL_CALL sal_Int32 xdictionary::getLongestMatch(const sal_Unicode* str, sal_Int32 sLen) {
xdictionary::getLongestMatch(const sal_Unicode* str, sal_Int32 sLen) {
if ( !index1 ) return 0; if ( !index1 ) return 0;
@ -153,7 +153,7 @@ xdictionary::getLongestMatch(const sal_Unicode* str, sal_Int32 sLen) {
* Compare two unicode string, * Compare two unicode string,
*/ */
sal_Bool SAL_CALL WordBreakCache::equals(const sal_Unicode* str, Boundary& boundary) { sal_Bool WordBreakCache::equals(const sal_Unicode* str, Boundary& boundary) {
// Different length, different string. // Different length, different string.
if (length != boundary.endPos - boundary.startPos) return sal_False; if (length != boundary.endPos - boundary.startPos) return sal_False;
@ -169,7 +169,7 @@ sal_Bool SAL_CALL WordBreakCache::equals(const sal_Unicode* str, Boundary& bound
* @param pos : Position of the given character. * @param pos : Position of the given character.
* @return true if CJK. * @return true if CJK.
*/ */
sal_Bool SAL_CALL xdictionary::seekSegment(const sal_Unicode *text, sal_Int32 pos, sal_Bool xdictionary::seekSegment(const sal_Unicode *text, sal_Int32 pos,
sal_Int32 len, Boundary& segBoundary) { sal_Int32 len, Boundary& segBoundary) {
for (segBoundary.startPos = pos - 1; for (segBoundary.startPos = pos - 1;
segBoundary.startPos >= 0 && segBoundary.startPos >= 0 &&
@ -189,7 +189,7 @@ sal_Bool SAL_CALL xdictionary::seekSegment(const sal_Unicode *text, sal_Int32 po
#define KATAKANA 2 #define KATAKANA 2
#define HIRAKANA 3 #define HIRAKANA 3
static sal_Int16 SAL_CALL JapaneseCharType(sal_Unicode c) static sal_Int16 JapaneseCharType(sal_Unicode c)
{ {
if (0x3041 <= c && c <= 0x309e) if (0x3041 <= c && c <= 0x309e)
return HIRAKANA; return HIRAKANA;
@ -198,7 +198,7 @@ static sal_Int16 SAL_CALL JapaneseCharType(sal_Unicode c)
return KANJA; return KANJA;
} }
WordBreakCache& SAL_CALL xdictionary::getCache(const sal_Unicode *text, Boundary& wordBoundary) WordBreakCache& xdictionary::getCache(const sal_Unicode *text, Boundary& wordBoundary)
{ {
WordBreakCache& aCache = cache[text[0] & 0x1f]; WordBreakCache& aCache = cache[text[0] & 0x1f];
@ -253,11 +253,14 @@ WordBreakCache& SAL_CALL xdictionary::getCache(const sal_Unicode *text, Boundary
if (count) { if (count) {
aCache.wordboundary[i+1] = aCache.wordboundary[i] + count; aCache.wordboundary[i+1] = aCache.wordboundary[i] + count;
i++; i++;
#if USE_CELL_BOUNDARY_CODE
if (useCellBoundary) { if (useCellBoundary) {
sal_Int32 cBoundary = cellBoundary[aCache.wordboundary[i] + wordBoundary.startPos - 1]; sal_Int32 cBoundary = cellBoundary[aCache.wordboundary[i] + wordBoundary.startPos - 1];
if (cBoundary > 0) if (cBoundary > 0)
aCache.wordboundary[i] = cBoundary - wordBoundary.startPos; aCache.wordboundary[i] = cBoundary - wordBoundary.startPos;
} }
#endif
} }
} }
@ -265,11 +268,13 @@ WordBreakCache& SAL_CALL xdictionary::getCache(const sal_Unicode *text, Boundary
aCache.wordboundary[i+1] = aCache.wordboundary[i] + len; aCache.wordboundary[i+1] = aCache.wordboundary[i] + len;
i++; i++;
#if USE_CELL_BOUNDARY_CODE
if (useCellBoundary) { if (useCellBoundary) {
sal_Int32 cBoundary = cellBoundary[aCache.wordboundary[i] + wordBoundary.startPos - 1]; sal_Int32 cBoundary = cellBoundary[aCache.wordboundary[i] + wordBoundary.startPos - 1];
if (cBoundary > 0) if (cBoundary > 0)
aCache.wordboundary[i] = cBoundary - wordBoundary.startPos; aCache.wordboundary[i] = cBoundary - wordBoundary.startPos;
} }
#endif
} }
} }
aCache.wordboundary[i + 1] = aCache.length + 1; aCache.wordboundary[i + 1] = aCache.length + 1;
@ -277,7 +282,7 @@ WordBreakCache& SAL_CALL xdictionary::getCache(const sal_Unicode *text, Boundary
return aCache; return aCache;
} }
Boundary SAL_CALL xdictionary::previousWord(const OUString& rText, sal_Int32 anyPos, sal_Int16 wordType) Boundary xdictionary::previousWord(const OUString& rText, sal_Int32 anyPos, sal_Int16 wordType)
{ {
// looking for the first non-whitespace character from anyPos // looking for the first non-whitespace character from anyPos
sal_uInt32 ch = rText.iterateCodePoints(&anyPos, -1); sal_uInt32 ch = rText.iterateCodePoints(&anyPos, -1);
@ -287,7 +292,7 @@ Boundary SAL_CALL xdictionary::previousWord(const OUString& rText, sal_Int32 any
return getWordBoundary(rText, anyPos, wordType, true); return getWordBoundary(rText, anyPos, wordType, true);
} }
Boundary SAL_CALL xdictionary::nextWord(const OUString& rText, sal_Int32 anyPos, sal_Int16 wordType) Boundary xdictionary::nextWord(const OUString& rText, sal_Int32 anyPos, sal_Int16 wordType)
{ {
boundary = getWordBoundary(rText, anyPos, wordType, true); boundary = getWordBoundary(rText, anyPos, wordType, true);
anyPos = boundary.endPos; anyPos = boundary.endPos;
@ -301,7 +306,7 @@ Boundary SAL_CALL xdictionary::nextWord(const OUString& rText, sal_Int32 anyPos,
return getWordBoundary(rText, anyPos, wordType, true); return getWordBoundary(rText, anyPos, wordType, true);
} }
Boundary SAL_CALL xdictionary::getWordBoundary(const OUString& rText, sal_Int32 anyPos, sal_Int16 wordType, sal_Bool bDirection) Boundary xdictionary::getWordBoundary(const OUString& rText, sal_Int32 anyPos, sal_Int16 wordType, sal_Bool bDirection)
{ {
const sal_Unicode *text=rText.getStr(); const sal_Unicode *text=rText.getStr();
sal_Int32 len=rText.getLength(); sal_Int32 len=rText.getLength();
@ -334,11 +339,12 @@ Boundary SAL_CALL xdictionary::getWordBoundary(const OUString& rText, sal_Int32
return boundary; return boundary;
} }
#if USE_CELL_BOUNDARY_CODE
void SAL_CALL xdictionary::setCellBoundary(sal_Int32* cellArray) void xdictionary::setCellBoundary(sal_Int32* cellArray)
{ {
useCellBoundary = sal_True; useCellBoundary = sal_True;
cellBoundary = cellArray; cellBoundary = cellArray;
} }
#endif
} } } } } } } }

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: calendar_gregorian.cxx,v $ * $RCSfile: calendar_gregorian.cxx,v $
* $Revision: 1.34 $ * $Revision: 1.34.24.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -44,37 +44,90 @@
#include <string.h> #include <string.h>
#define erDUMP_ICU_CALENDAR 0 #define erDUMP_ICU_CALENDAR 0
#if erDUMP_ICU_CALENDAR #define erDUMP_I18N_CALENDAR 0
// Make icu with #if erDUMP_ICU_CALENDAR || erDUMP_I18N_CALENDAR
// DEFS = -DU_DEBUG_CALSVC -DUCAL_DEBUG_DUMP // If both are used, DUMP_ICU_CAL_MSG() must be used before DUMP_I18N_CAL_MSG()
// in icu/$(INPATH)/misc/build/icu/source/icudefs.mk // to obtain internally set values from ICU, else Calendar::get() calls in
// May need some patches to fix unmaintained things there. // DUMP_I18N_CAL_MSG() recalculate!
extern void ucal_dump( const icu::Calendar & );
# include <stdarg.h>
static void debug_cal_dump( const ::icu::Calendar & r )
{
ucal_dump(r);
fflush(stderr);
// set a breakpoint here to pause display between dumps
}
// These pieces of macro are shamelessly borrowed from icu's olsontz.cpp, the // These pieces of macro are shamelessly borrowed from icu's olsontz.cpp, the
// double parens'ed approach to passing multiple parameters as one macro // double parens'ed approach to pass multiple parameters as one macro parameter
// parameter is appealing. // is appealing.
static void debug_cal_loc(const char *f, int32_t l) static void debug_cal_loc(const char *f, int32_t l)
{ {
fprintf(stderr, "%s:%d: ", f, l); fprintf(stderr, "%s:%d: ", f, l);
} }
# include <stdarg.h>
static void debug_cal_msg(const char *pat, ...) static void debug_cal_msg(const char *pat, ...)
{ {
va_list ap; va_list ap;
va_start(ap, pat); va_start(ap, pat);
vfprintf(stderr, pat, ap); vfprintf(stderr, pat, ap);
} }
// must use double parens, i.e.: DUMP_CAL_MSG(("four is: %d",4));
#define DUMP_CAL_MSG(x) {debug_cal_loc(__FILE__,__LINE__);debug_cal_msg x;debug_cal_dump(*body);} #if erDUMP_ICU_CALENDAR
#else // Make icu with
#define DUMP_CAL_MSG(x) // DEFS = -DU_DEBUG_CALSVC -DUCAL_DEBUG_DUMP
#endif // in icu/$(INPATH)/misc/build/icu/source/icudefs.mk
// May need some patches to fix unmaintained things there.
extern void ucal_dump( const icu::Calendar & );
static void debug_icu_cal_dump( const ::icu::Calendar & r )
{
ucal_dump(r);
fflush(stderr);
// set a breakpoint here to pause display between dumps
}
// must use double parens, i.e.: DUMP_ICU_CAL_MSG(("four is: %d",4));
#define DUMP_ICU_CAL_MSG(x) {debug_cal_loc(__FILE__,__LINE__);debug_cal_msg x;debug_icu_cal_dump(*body);}
#else // erDUMP_ICU_CALENDAR
#define DUMP_ICU_CAL_MSG(x)
#endif // erDUMP_ICU_CALENDAR
#if erDUMP_I18N_CALENDAR
static void debug_cal_millis_to_time( long nMillis, long & h, long & m, long & s, long & f )
{
int sign = (nMillis < 0 ? -1 : 1);
nMillis = ::std::abs(nMillis);
h = sign * nMillis / (60 * 60 * 1000);
nMillis -= sign * h * (60 * 60 * 1000);
m = nMillis / (60 * 1000);
nMillis -= m * (60 * 1000);
s = nMillis / (1000);
nMillis -= s * (1000);
f = nMillis;
}
static void debug_i18n_cal_dump( const ::icu::Calendar & r )
{
UErrorCode status;
long nMillis, h, m, s, f;
fprintf( stderr, " %04ld", (long)r.get( UCAL_YEAR, status = U_ZERO_ERROR));
fprintf( stderr, "-%02ld", (long)r.get( UCAL_MONTH, status = U_ZERO_ERROR)+1);
fprintf( stderr, "-%02ld", (long)r.get( UCAL_DATE, status = U_ZERO_ERROR));
fprintf( stderr, " %02ld", (long)r.get( UCAL_HOUR_OF_DAY, status = U_ZERO_ERROR));
fprintf( stderr, ":%02ld", (long)r.get( UCAL_MINUTE, status = U_ZERO_ERROR));
fprintf( stderr, ":%02ld", (long)r.get( UCAL_SECOND, status = U_ZERO_ERROR));
fprintf( stderr, " zone: %ld", (long)(nMillis = r.get( UCAL_ZONE_OFFSET, status = U_ZERO_ERROR)));
fprintf( stderr, " (%f min)", (double)nMillis / 60000);
debug_cal_millis_to_time( nMillis, h, m, s, f);
fprintf( stderr, " (%ld:%02ld:%02ld.%ld)", h, m, s, f);
fprintf( stderr, " DST: %ld", (long)(nMillis = r.get( UCAL_DST_OFFSET, status = U_ZERO_ERROR)));
fprintf( stderr, " (%f min)", (double)nMillis / 60000);
debug_cal_millis_to_time( nMillis, h, m, s, f);
fprintf( stderr, " (%ld:%02ld:%02ld.%ld)", h, m, s, f);
fprintf( stderr, "\n");
fflush(stderr);
}
// must use double parens, i.e.: DUMP_I18N_CAL_MSG(("four is: %d",4));
#define DUMP_I18N_CAL_MSG(x) {debug_cal_loc(__FILE__,__LINE__);debug_cal_msg x;debug_i18n_cal_dump(*body);}
#else // erDUMP_I18N_CALENDAR
#define DUMP_I18N_CAL_MSG(x)
#endif // erDUMP_I18N_CALENDAR
#else // erDUMP_ICU_CALENDAR || erDUMP_I18N_CALENDAR
#define DUMP_ICU_CAL_MSG(x)
#define DUMP_I18N_CAL_MSG(x)
#endif // erDUMP_ICU_CALENDAR || erDUMP_I18N_CALENDAR
using namespace ::com::sun::star::uno; using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang; using namespace ::com::sun::star::lang;
@ -234,8 +287,7 @@ Calendar_gregorian::getDateTime() throw(RuntimeException)
// map field value from gregorian calendar to other calendar, it can be overwritten by derived class. // map field value from gregorian calendar to other calendar, it can be overwritten by derived class.
// By using eraArray, it can take care Japanese and Taiwan ROC calendar. // By using eraArray, it can take care Japanese and Taiwan ROC calendar.
void SAL_CALL void Calendar_gregorian::mapFromGregorian() throw(RuntimeException)
Calendar_gregorian::mapFromGregorian() throw(RuntimeException)
{ {
if (eraArray) { if (eraArray) {
sal_Int16 e, y, m, d; sal_Int16 e, y, m, d;
@ -263,7 +315,7 @@ Calendar_gregorian::mapFromGregorian() throw(RuntimeException)
#define FIELDS ((1 << CalendarFieldIndex::ERA) | (1 << CalendarFieldIndex::YEAR)) #define FIELDS ((1 << CalendarFieldIndex::ERA) | (1 << CalendarFieldIndex::YEAR))
// map field value from other calendar to gregorian calendar, it can be overwritten by derived class. // map field value from other calendar to gregorian calendar, it can be overwritten by derived class.
// By using eraArray, it can take care Japanese and Taiwan ROC calendar. // By using eraArray, it can take care Japanese and Taiwan ROC calendar.
void SAL_CALL Calendar_gregorian::mapToGregorian() throw(RuntimeException) void Calendar_gregorian::mapToGregorian() throw(RuntimeException)
{ {
if (eraArray && (fieldSet & FIELDS)) { if (eraArray && (fieldSet & FIELDS)) {
sal_Int16 y, e = fieldValue[CalendarFieldIndex::ERA]; sal_Int16 y, e = fieldValue[CalendarFieldIndex::ERA];
@ -306,27 +358,75 @@ static UCalendarDateFields fieldNameConverter(sal_Int16 fieldIndex) throw(Runtim
void SAL_CALL void SAL_CALL
Calendar_gregorian::setValue( sal_Int16 fieldIndex, sal_Int16 value ) throw(RuntimeException) Calendar_gregorian::setValue( sal_Int16 fieldIndex, sal_Int16 value ) throw(RuntimeException)
{ {
if (fieldIndex < 0 || FIELD_INDEX_COUNT <= fieldIndex)
throw ERROR;
fieldSet |= (1 << fieldIndex); fieldSet |= (1 << fieldIndex);
fieldValue[fieldIndex] = value; fieldValue[fieldIndex] = value;
} }
void SAL_CALL Calendar_gregorian::submitFields() throw(com::sun::star::uno::RuntimeException) bool Calendar_gregorian::getCombinedOffset( sal_Int32 & o_nOffset,
sal_Int16 nParentFieldIndex, sal_Int16 nChildFieldIndex ) const
{ {
for (sal_Int16 fieldIndex = 0; fieldIndex < CalendarFieldIndex::FIELD_COUNT; fieldIndex++) o_nOffset = 0;
bool bFieldsSet = false;
if (fieldSet & (1 << nParentFieldIndex))
{
bFieldsSet = true;
o_nOffset = static_cast<sal_Int32>( fieldValue[nParentFieldIndex]) * 60000;
}
if (fieldSet & (1 << nChildFieldIndex))
{
bFieldsSet = true;
if (o_nOffset < 0)
o_nOffset -= static_cast<sal_uInt16>( fieldValue[nChildFieldIndex]);
else
o_nOffset += static_cast<sal_uInt16>( fieldValue[nChildFieldIndex]);
}
return bFieldsSet;
}
bool Calendar_gregorian::getZoneOffset( sal_Int32 & o_nOffset ) const
{
return getCombinedOffset( o_nOffset, CalendarFieldIndex::ZONE_OFFSET,
CalendarFieldIndex::ZONE_OFFSET_SECOND_MILLIS);
}
bool Calendar_gregorian::getDSTOffset( sal_Int32 & o_nOffset ) const
{
return getCombinedOffset( o_nOffset, CalendarFieldIndex::DST_OFFSET,
CalendarFieldIndex::DST_OFFSET_SECOND_MILLIS);
}
void Calendar_gregorian::submitFields() throw(com::sun::star::uno::RuntimeException)
{
for (sal_Int16 fieldIndex = 0; fieldIndex < FIELD_INDEX_COUNT; fieldIndex++)
{ {
if (fieldSet & (1 << fieldIndex)) if (fieldSet & (1 << fieldIndex))
{ {
if (fieldIndex == CalendarFieldIndex::ZONE_OFFSET || fieldIndex == CalendarFieldIndex::DST_OFFSET) switch (fieldIndex)
body->set(fieldNameConverter(fieldIndex), (sal_Int32) fieldSetValue[fieldIndex] * 60000); {
else default:
body->set(fieldNameConverter(fieldIndex), fieldSetValue[fieldIndex]); body->set(fieldNameConverter(fieldIndex), fieldSetValue[fieldIndex]);
break;
case CalendarFieldIndex::ZONE_OFFSET:
case CalendarFieldIndex::DST_OFFSET:
case CalendarFieldIndex::ZONE_OFFSET_SECOND_MILLIS:
case CalendarFieldIndex::DST_OFFSET_SECOND_MILLIS:
break; // nothing, extra handling
} }
} }
} }
sal_Int32 nZoneOffset, nDSTOffset;
if (getZoneOffset( nZoneOffset))
body->set( fieldNameConverter( CalendarFieldIndex::ZONE_OFFSET), nZoneOffset);
if (getDSTOffset( nDSTOffset))
body->set( fieldNameConverter( CalendarFieldIndex::DST_OFFSET), nDSTOffset);
}
void SAL_CALL Calendar_gregorian::submitValues( sal_Int32 nYear, void Calendar_gregorian::submitValues( sal_Int32 nYear,
sal_Int32 nMonth, sal_Int32 nDay, sal_Int32 nHour, sal_Int32 nMinute, sal_Int32 nMonth, sal_Int32 nDay, sal_Int32 nHour, sal_Int32 nMinute,
sal_Int32 nSecond, sal_Int32 nMilliSecond ) throw(com::sun::star::uno::RuntimeException) sal_Int32 nSecond, sal_Int32 nMilliSecond, sal_Int32 nZone, sal_Int32 nDST )
throw(com::sun::star::uno::RuntimeException)
{ {
submitFields(); submitFields();
if (nYear >= 0) if (nYear >= 0)
@ -343,10 +443,25 @@ void SAL_CALL Calendar_gregorian::submitValues( sal_Int32 nYear,
body->set( UCAL_SECOND, nSecond); body->set( UCAL_SECOND, nSecond);
if (nMilliSecond >= 0) if (nMilliSecond >= 0)
body->set( UCAL_MILLISECOND, nMilliSecond); body->set( UCAL_MILLISECOND, nMilliSecond);
if (nZone != 0)
body->set( UCAL_ZONE_OFFSET, nZone);
if (nDST != 0)
body->set( UCAL_DST_OFFSET, nDST);
} }
void SAL_CALL static void lcl_setCombinedOffsetFieldValues( sal_Int32 nValue,
Calendar_gregorian::setValue() throw(RuntimeException) sal_Int16 rFieldSetValue[], sal_Int16 rFieldValue[],
sal_Int16 nParentFieldIndex, sal_Int16 nChildFieldIndex )
{
sal_Int32 nTrunc = nValue / 60000;
rFieldSetValue[nParentFieldIndex] = rFieldValue[nParentFieldIndex] =
static_cast<sal_Int16>( nTrunc);
sal_uInt16 nMillis = static_cast<sal_uInt16>( abs( nValue - nTrunc * 60000));
rFieldSetValue[nChildFieldIndex] = rFieldValue[nChildFieldIndex] =
static_cast<sal_Int16>( nMillis);
}
void Calendar_gregorian::setValue() throw(RuntimeException)
{ {
// Correct DST glitch, see also localtime/gmtime conversion pitfalls at // Correct DST glitch, see also localtime/gmtime conversion pitfalls at
// http://www.erack.de/download/timetest.c // http://www.erack.de/download/timetest.c
@ -364,16 +479,30 @@ Calendar_gregorian::setValue() throw(RuntimeException)
// being adjusted to 24:00 in this case, switching one day further. // being adjusted to 24:00 in this case, switching one day further.
// => submit 2004-03-28T00:00 no DST. // => submit 2004-03-28T00:00 no DST.
// This got even weirder since ICU incorporated also historical data,
// even the timezone may differ for different dates! It is necessary to
// let ICU choose the corresponding OlsonTimeZone transitions and adapt
// values.
// #i86094# gives examples where that went wrong:
// TZ=Europe/Moscow date <= 1919-07-01
// zone +2:30:48 (!) instead of +3h, DST +2h instead of +1h
// TZ=America/St_Johns date <= 1935-03-30
// zone -3:30:52 (!) instead of -3:30
// Copy fields before calling submitFields() directly or indirectly below. // Copy fields before calling submitFields() directly or indirectly below.
memcpy(fieldSetValue, fieldValue, sizeof(fieldSetValue)); memcpy(fieldSetValue, fieldValue, sizeof(fieldSetValue));
// Possibly setup ERA and YEAR in fieldSetValue. // Possibly setup ERA and YEAR in fieldSetValue.
mapToGregorian(); mapToGregorian();
DUMP_ICU_CAL_MSG(("%s\n","setValue() before any submission"));
DUMP_I18N_CAL_MSG(("%s\n","setValue() before any submission"));
bool bNeedZone = !(fieldSet & (1 << CalendarFieldIndex::ZONE_OFFSET));
bool bNeedDST = !(fieldSet & (1 << CalendarFieldIndex::DST_OFFSET)); bool bNeedDST = !(fieldSet & (1 << CalendarFieldIndex::DST_OFFSET));
sal_Int32 nDST1, nYear, nMonth, nDay, nHour, nMinute, nSecond, nMilliSecond; sal_Int32 nZone1, nDST1, nYear, nMonth, nDay, nHour, nMinute, nSecond, nMilliSecond, nZone, nDST;
nDST1 = 0; nZone1 = nDST1 = nZone = nDST = 0;
nYear = nMonth = nDay = nHour = nMinute = nSecond = nMilliSecond = -1; nYear = nMonth = nDay = nHour = nMinute = nSecond = nMilliSecond = -1;
if ( bNeedDST ) if ( bNeedZone || bNeedDST )
{ {
UErrorCode status; UErrorCode status;
if ( !(fieldSet & (1 << CalendarFieldIndex::YEAR)) ) if ( !(fieldSet & (1 << CalendarFieldIndex::YEAR)) )
@ -418,36 +547,84 @@ Calendar_gregorian::setValue() throw(RuntimeException)
if ( !U_SUCCESS(status) ) if ( !U_SUCCESS(status) )
nMilliSecond = -1; nMilliSecond = -1;
} }
// Submit values to obtain a DST corresponding to the date/time. if ( !(fieldSet & (1 << CalendarFieldIndex::ZONE_OFFSET)) )
submitValues( nYear, nMonth, nDay, nHour, nMinute, nSecond, nMilliSecond); {
nZone = body->get( UCAL_ZONE_OFFSET, status = U_ZERO_ERROR);
if ( !U_SUCCESS(status) )
nZone = 0;
}
if ( !(fieldSet & (1 << CalendarFieldIndex::DST_OFFSET)) )
{
nDST = body->get( UCAL_DST_OFFSET, status = U_ZERO_ERROR);
if ( !U_SUCCESS(status) )
nDST = 0;
}
// Submit values to obtain a time zone and DST corresponding to the date/time.
submitValues( nYear, nMonth, nDay, nHour, nMinute, nSecond, nMilliSecond, nZone, nDST);
DUMP_ICU_CAL_MSG(("%s\n","setValue() in bNeedZone||bNeedDST after submitValues()"));
DUMP_I18N_CAL_MSG(("%s\n","setValue() in bNeedZone||bNeedDST after submitValues()"));
nZone1 = body->get( UCAL_ZONE_OFFSET, status = U_ZERO_ERROR);
if ( !U_SUCCESS(status) )
nZone1 = 0;
nDST1 = body->get( UCAL_DST_OFFSET, status = U_ZERO_ERROR); nDST1 = body->get( UCAL_DST_OFFSET, status = U_ZERO_ERROR);
if ( !U_SUCCESS(status) ) if ( !U_SUCCESS(status) )
nDST1 = 0; nDST1 = 0;
DUMP_CAL_MSG(("%s\n","setValue() in bNeedDST"));
} }
// The original submission, may lead to a different DST than in bNeedDST. // The original submission, may lead to a different zone/DST.
submitFields(); submitFields();
DUMP_ICU_CAL_MSG(("%s\n","setValue() after original submission"));
DUMP_I18N_CAL_MSG(("%s\n","setValue() after original submission"));
if ( bNeedDST ) if ( bNeedZone || bNeedDST )
{ {
UErrorCode status; UErrorCode status;
sal_Int32 nZone2 = body->get( UCAL_ZONE_OFFSET, status = U_ZERO_ERROR);
if ( !U_SUCCESS(status) )
nZone2 = nZone1;
sal_Int32 nDST2 = body->get( UCAL_DST_OFFSET, status = U_ZERO_ERROR); sal_Int32 nDST2 = body->get( UCAL_DST_OFFSET, status = U_ZERO_ERROR);
if ( !U_SUCCESS(status) ) if ( !U_SUCCESS(status) )
nDST2 = nDST1; nDST2 = nDST1;
if ( nDST2 != nDST1 ) if ( nZone2 != nZone1 || nDST2 != nDST1 )
{ {
DUMP_CAL_MSG(("%s\n","setValue() submission with different DSTs"));
// Due to different DSTs, resulting date values may differ if // Due to different DSTs, resulting date values may differ if
// DST is onset at 00:00 and the very onsetRule date was // DST is onset at 00:00 and the very onsetRule date was
// submitted with DST off => date-1 23:00, for example, which // submitted with DST off => date-1 23:00, for example, which
// is not what we want. // is not what we want.
// Resubmit all values, this time including DST => date 01:00 // Resubmit all values, this time including DST => date 01:00
fieldSet |= (1 << CalendarFieldIndex::DST_OFFSET); // Similar for zone differences.
fieldSetValue[CalendarFieldIndex::DST_OFFSET] =
fieldValue[CalendarFieldIndex::DST_OFFSET] = sal::static_int_cast<sal_Int16>( nDST2 / 60000 ); // Set field values accordingly in case they were used.
submitValues( nYear, nMonth, nDay, nHour, nMinute, nSecond, nMilliSecond); if (!bNeedZone)
lcl_setCombinedOffsetFieldValues( nZone2, fieldSetValue,
fieldValue, CalendarFieldIndex::ZONE_OFFSET,
CalendarFieldIndex::ZONE_OFFSET_SECOND_MILLIS);
if (!bNeedDST)
lcl_setCombinedOffsetFieldValues( nDST2, fieldSetValue,
fieldValue, CalendarFieldIndex::DST_OFFSET,
CalendarFieldIndex::DST_OFFSET_SECOND_MILLIS);
submitValues( nYear, nMonth, nDay, nHour, nMinute, nSecond, nMilliSecond, nZone2, nDST2);
DUMP_ICU_CAL_MSG(("%s\n","setValue() after Zone/DST glitch resubmit"));
DUMP_I18N_CAL_MSG(("%s\n","setValue() after Zone/DST glitch resubmit"));
// Time zone transition => resubmit.
// TZ=America/St_Johns date <= 1935-03-30
// -3:30:52 (!) instead of -3:30
// if first submission included time zone -3:30 that would be wrong.
bool bResubmit = false;
sal_Int32 nZone3 = body->get( UCAL_ZONE_OFFSET, status = U_ZERO_ERROR);
if ( !U_SUCCESS(status) )
nZone3 = nZone2;
if (nZone3 != nZone2)
{
bResubmit = true;
if (!bNeedZone)
lcl_setCombinedOffsetFieldValues( nZone3, fieldSetValue,
fieldValue, CalendarFieldIndex::ZONE_OFFSET,
CalendarFieldIndex::ZONE_OFFSET_SECOND_MILLIS);
}
// If the DST onset rule says to switch from 00:00 to 01:00 and // If the DST onset rule says to switch from 00:00 to 01:00 and
// we tried to set onsetDay 00:00 with DST, the result was // we tried to set onsetDay 00:00 with DST, the result was
@ -463,34 +640,67 @@ Calendar_gregorian::setValue() throw(RuntimeException)
nDST3 = nDST2; nDST3 = nDST2;
if (nDST2 != nDST3 && !nDST3) if (nDST2 != nDST3 && !nDST3)
{ {
DUMP_CAL_MSG(("%s\n","setValue() DST glitch")); bResubmit = true;
if (!bNeedDST)
{
fieldSetValue[CalendarFieldIndex::DST_OFFSET] = fieldSetValue[CalendarFieldIndex::DST_OFFSET] =
fieldValue[CalendarFieldIndex::DST_OFFSET] = 0; fieldValue[CalendarFieldIndex::DST_OFFSET] = 0;
submitValues( nYear, nMonth, nDay, nHour, nMinute, nSecond, nMilliSecond); fieldSetValue[CalendarFieldIndex::DST_OFFSET_SECOND_MILLIS] =
fieldValue[CalendarFieldIndex::DST_OFFSET_SECOND_MILLIS] = 0;
}
}
if (bResubmit)
{
submitValues( nYear, nMonth, nDay, nHour, nMinute, nSecond, nMilliSecond, nZone3, nDST3);
DUMP_ICU_CAL_MSG(("%s\n","setValue() after Zone/DST glitch 2nd resubmit"));
DUMP_I18N_CAL_MSG(("%s\n","setValue() after Zone/DST glitch 2nd resubmit"));
} }
} }
} }
#if erDUMP_ICU_CALENDAR #if erDUMP_ICU_CALENDAR || erDUMP_I18N_CALENDAR
{ {
// force icu::Calendar to recalculate // force icu::Calendar to recalculate
UErrorCode status; UErrorCode status;
sal_Int32 nTmp = body->get( UCAL_DATE, status = U_ZERO_ERROR); sal_Int32 nTmp = body->get( UCAL_DATE, status = U_ZERO_ERROR);
DUMP_CAL_MSG(("%s: %d\n","setValue() result day",nTmp)); DUMP_ICU_CAL_MSG(("%s: %d\n","setValue() result day",nTmp));
DUMP_I18N_CAL_MSG(("%s: %d\n","setValue() result day",nTmp));
} }
#endif #endif
} }
void SAL_CALL Calendar_gregorian::getValue() throw(RuntimeException) void Calendar_gregorian::getValue() throw(RuntimeException)
{ {
for (sal_Int16 fieldIndex = 0; fieldIndex < CalendarFieldIndex::FIELD_COUNT; fieldIndex++) { DUMP_ICU_CAL_MSG(("%s\n","getValue()"));
UErrorCode status; DUMP_I18N_CAL_MSG(("%s\n","getValue()"));
sal_Int32 value = body->get(fieldNameConverter(fieldIndex), status = U_ZERO_ERROR); for (sal_Int16 fieldIndex = 0; fieldIndex < FIELD_INDEX_COUNT; fieldIndex++)
{
if (fieldIndex == CalendarFieldIndex::ZONE_OFFSET_SECOND_MILLIS ||
fieldIndex == CalendarFieldIndex::DST_OFFSET_SECOND_MILLIS)
continue; // not ICU fields
UErrorCode status; sal_Int32 value = body->get( fieldNameConverter(
fieldIndex), status = U_ZERO_ERROR);
if ( !U_SUCCESS(status) ) throw ERROR; if ( !U_SUCCESS(status) ) throw ERROR;
// convert millisecond to minute for ZONE and DST. // Convert millisecond to minute for ZONE and DST and set remainder in
if (fieldIndex == CalendarFieldIndex::ZONE_OFFSET || fieldIndex == CalendarFieldIndex::DST_OFFSET) // second field.
value /= 60000; if (fieldIndex == CalendarFieldIndex::ZONE_OFFSET)
{
sal_Int32 nMinutes = value / 60000;
sal_Int16 nMillis = static_cast<sal_Int16>( static_cast<sal_uInt16>(
abs( value - nMinutes * 60000)));
fieldValue[CalendarFieldIndex::ZONE_OFFSET] = static_cast<sal_Int16>( nMinutes);
fieldValue[CalendarFieldIndex::ZONE_OFFSET_SECOND_MILLIS] = nMillis;
}
else if (fieldIndex == CalendarFieldIndex::DST_OFFSET)
{
sal_Int32 nMinutes = value / 60000;
sal_Int16 nMillis = static_cast<sal_Int16>( static_cast<sal_uInt16>(
abs( value - nMinutes * 60000)));
fieldValue[CalendarFieldIndex::DST_OFFSET] = static_cast<sal_Int16>( nMinutes);
fieldValue[CalendarFieldIndex::DST_OFFSET_SECOND_MILLIS] = nMillis;
}
else
fieldValue[fieldIndex] = (sal_Int16) value; fieldValue[fieldIndex] = (sal_Int16) value;
// offset 1 since the value for week start day SunDay is different between Calendar and Weekdays. // offset 1 since the value for week start day SunDay is different between Calendar and Weekdays.
@ -504,6 +714,9 @@ void SAL_CALL Calendar_gregorian::getValue() throw(RuntimeException)
sal_Int16 SAL_CALL sal_Int16 SAL_CALL
Calendar_gregorian::getValue( sal_Int16 fieldIndex ) throw(RuntimeException) Calendar_gregorian::getValue( sal_Int16 fieldIndex ) throw(RuntimeException)
{ {
if (fieldIndex < 0 || FIELD_INDEX_COUNT <= fieldIndex)
throw ERROR;
if (fieldSet) { if (fieldSet) {
setValue(); setValue();
getValue(); getValue();
@ -530,7 +743,7 @@ Calendar_gregorian::isValid() throw(RuntimeException)
setValue(); setValue();
memcpy(fieldSetValue, fieldValue, sizeof(fieldSetValue)); memcpy(fieldSetValue, fieldValue, sizeof(fieldSetValue));
getValue(); getValue();
for ( sal_Int16 fieldIndex = 0; fieldIndex < CalendarFieldIndex::FIELD_COUNT; fieldIndex++ ) { for ( sal_Int16 fieldIndex = 0; fieldIndex < FIELD_INDEX_COUNT; fieldIndex++ ) {
// compare only with fields that are set and reset fieldSet[] // compare only with fields that are set and reset fieldSet[]
if (tmp & (1 << fieldIndex)) { if (tmp & (1 << fieldIndex)) {
if (fieldSetValue[fieldIndex] != fieldValue[fieldIndex]) if (fieldSetValue[fieldIndex] != fieldValue[fieldIndex])

View File

@ -79,7 +79,7 @@ Calendar_hijri::Calendar_hijri()
#define FIELDS ((1 << CalendarFieldIndex::ERA) | (1 << CalendarFieldIndex::YEAR) | (1 << CalendarFieldIndex::MONTH) | (1 << CalendarFieldIndex::DAY_OF_MONTH)) #define FIELDS ((1 << CalendarFieldIndex::ERA) | (1 << CalendarFieldIndex::YEAR) | (1 << CalendarFieldIndex::MONTH) | (1 << CalendarFieldIndex::DAY_OF_MONTH))
// map field value from hijri calendar to gregorian calendar // map field value from hijri calendar to gregorian calendar
void SAL_CALL Calendar_hijri::mapToGregorian() throw(RuntimeException) void Calendar_hijri::mapToGregorian() throw(RuntimeException)
{ {
if (fieldSet & FIELDS) { if (fieldSet & FIELDS) {
sal_Int32 day = (sal_Int32)fieldSetValue[CalendarFieldIndex::DAY_OF_MONTH]; sal_Int32 day = (sal_Int32)fieldSetValue[CalendarFieldIndex::DAY_OF_MONTH];
@ -99,7 +99,7 @@ void SAL_CALL Calendar_hijri::mapToGregorian() throw(RuntimeException)
} }
// map field value from gregorian calendar to hijri calendar // map field value from gregorian calendar to hijri calendar
void SAL_CALL Calendar_hijri::mapFromGregorian() throw(RuntimeException) void Calendar_hijri::mapFromGregorian() throw(RuntimeException)
{ {
sal_Int32 month, day, year; sal_Int32 month, day, year;

View File

@ -260,7 +260,7 @@ public:
}; };
// map field value from gregorian calendar to other calendar, it can be overwritten by derived class. // map field value from gregorian calendar to other calendar, it can be overwritten by derived class.
void SAL_CALL Calendar_jewish::mapFromGregorian() throw(RuntimeException) void Calendar_jewish::mapFromGregorian() throw(RuntimeException)
{ {
int y = fieldValue[CalendarFieldIndex::YEAR]; int y = fieldValue[CalendarFieldIndex::YEAR];
if (fieldValue[CalendarFieldIndex::ERA] == 0) if (fieldValue[CalendarFieldIndex::ERA] == 0)
@ -276,7 +276,7 @@ void SAL_CALL Calendar_jewish::mapFromGregorian() throw(RuntimeException)
#define FIELDS ((1 << CalendarFieldIndex::ERA) | (1 << CalendarFieldIndex::YEAR) | (1 << CalendarFieldIndex::MONTH) | (1 << CalendarFieldIndex::DAY_OF_MONTH)) #define FIELDS ((1 << CalendarFieldIndex::ERA) | (1 << CalendarFieldIndex::YEAR) | (1 << CalendarFieldIndex::MONTH) | (1 << CalendarFieldIndex::DAY_OF_MONTH))
// map field value from other calendar to gregorian calendar, it should be implemented. // map field value from other calendar to gregorian calendar, it should be implemented.
void SAL_CALL Calendar_jewish::mapToGregorian() throw(RuntimeException) void Calendar_jewish::mapToGregorian() throw(RuntimeException)
{ {
if (fieldSet & FIELDS) { if (fieldSet & FIELDS) {
sal_Int16 y = fieldSetValue[CalendarFieldIndex::YEAR]; sal_Int16 y = fieldSetValue[CalendarFieldIndex::YEAR];

View File

@ -18,6 +18,7 @@ global:
get_ku_alphanumeric; get_ku_alphanumeric;
get_hu_charset; get_hu_charset;
get_ln_charset; get_ln_charset;
get_my_dictionary;
local: local:
*; *;

View File

@ -0,0 +1,373 @@
# Myanmar collation for dictionary sort order (based on CLDR submission)
[normalization on]
&ႌ<့<း<့း
&ာ<<ါ
&ဲ<ော<<ေါ<ော်<<ေါ်
&ဴ<ံ<ို<က္<<က်<ာက္<<ာက်<<ါက္<<ါက်<ိက္<<ိက်<ုက္<<ုက်<ေက္<<ေက်<ောက္<<ေ
ာက်<<ေါက္<<ေါက်<ိုက္<<ိုက်<ခ္<<ခ်<ာခ္<<ာခ်<<ါခ္<<ါခ်<ိခ္<<ိခ်<ုခ္<<ု
ခ်<ေခ္<<ေခ်<ောခ္<<ောခ်<<ေါခ္<<ေါခ်<ိုခ္<<ိုခ်<ဂ္<<ဂ်<ာဂ္<<ာဂ်<<ါဂ္<<
ါဂ်<ိဂ္<<ိဂ်<ုဂ္<<ုဂ်<ေဂ္<<ေဂ်<ောဂ္<<ောဂ်<<ေါဂ္<<ေါဂ်<ိုဂ္<<ိုဂ်<ဃ္<
<ဃ်<ာဃ္<<ာဃ်<<ါဃ္<<ါဃ်<ိဃ္<<ိဃ်<ုဃ္<<ုဃ်<ေဃ္<<ေဃ်<ောဃ္<<ောဃ်<<ေါဃ္<<
ေါဃ်<ိုဃ္<<ိုဃ်<င်္<<င်<ာင်္<<ာင်<<ါင်္<<ါင်<ိင်္<<ိင်<ုင်္<<ုင်<ေင်
္<<ေင်<ောင်္<<ောင်<<ေါင်္<<ေါင်<ိုင်္<<ိုင်<စ္<<စ်<ာစ္<<ာစ်<<ါစ္<<ါစ
်<ိစ္<<ိစ်<ုစ္<<ုစ်<ေစ္<<ေစ်<ောစ္<<ောစ်<<ေါစ္<<ေါစ်<ိုစ္<<ိုစ်<ဆ္<<ဆ
်<ာဆ္<<ာဆ်<<ါဆ္<<ါဆ်<ိဆ္<<ိဆ်<ုဆ္<<ုဆ်<ေဆ္<<ေဆ်<ောဆ္<<ောဆ်<<ေါဆ္<<ေါ
ဆ်<ိုဆ္<<ိုဆ်<ဇ္<<ဇ်<ာဇ္<<ာဇ်<<ါဇ္<<ါဇ်<ိဇ္<<ိဇ်<ုဇ္<<ုဇ်<ေဇ္<<ေဇ်<ေ
ာဇ္<<ောဇ်<<ေါဇ္<<ေါဇ်<ိုဇ္<<ိုဇ်<ဈ်<ာဈ်<<ါဈ်<ိဈ်<ုဈ်<ေဈ်<ောဈ်<<ေါဈ်<
ိုဈ်<ဉ္<<ဉ်<ာဉ္<<ာဉ်<<ါဉ္<<ါဉ်<ိဉ္<<ိဉ်<ုဉ္<<ုဉ်<ေဉ္<<ေဉ်<ောဉ္<<ောဉ်
<<ေါဉ္<<ေါဉ်<ိုဉ္<<ိုဉ်<ည္<<ည်<ာည္<<ာည်<<ါည္<<ါည်<ိည္<<ိည်<ုည္<<ုည်<
ေည္<<ေည်<ောည္<<ောည်<<ေါည္<<ေါည်<ိုည္<<ိုည်<ဋ္<<ဋ်<ာဋ္<<ာဋ်<<ါဋ္<<ါဋ်
<ိဋ္<<ိဋ်<ုဋ္<<ုဋ်<ေဋ္<<ေဋ်<ောဋ္<<ောဋ်<<ေါဋ္<<ေါဋ်<ိုဋ္<<ိုဋ်<ဌ္<<ဌ်
<ာဌ္<<ာဌ်<<ါဌ္<<ါဌ်<ိဌ္<<ိဌ်<ုဌ္<<ုဌ်<ေဌ္<<ေဌ်<ောဌ္<<ောဌ်<<ေါဌ္<<ေါဌ
်<ိုဌ္<<ိုဌ်<ဍ္<<ဍ်<ာဍ္<<ာဍ်<<ါဍ္<<ါဍ်<ိဍ္<<ိဍ်<ုဍ္<<ုဍ်<ေဍ္<<ေဍ်<ော
ဍ္<<ောဍ်<<ေါဍ္<<ေါဍ်<ိုဍ္<<ိုဍ်<ဎ္<<ဎ်<ာဎ္<<ာဎ်<<ါဎ္<<ါဎ်<ိဎ္<<ိဎ်<ု
ဎ္<<ုဎ်<ေဎ္<<ေဎ်<ောဎ္<<ောဎ်<<ေါဎ္<<ေါဎ်<ိုဎ္<<ိုဎ်<ဏ္<<ဏ်<ာဏ္<<ာဏ်<<
ါဏ္<<ါဏ်<ိဏ္<<ိဏ်<ုဏ္<<ုဏ်<ေဏ္<<ေဏ်<ောဏ္<<ောဏ်<<ေါဏ္<<ေါဏ်<ိုဏ္<<ိုဏ
်<တ္<<တ်<ာတ္<<ာတ်<<ါတ္<<ါတ်<ိတ္<<ိတ်<ုတ္<<ုတ်<ေတ္<<ေတ်<ောတ္<<ောတ်<<ေ
ါတ္<<ေါတ်<ိုတ္<<ိုတ်<ထ္<<ထ်<ာထ္<<ာထ်<<ါထ္<<ါထ်<ိထ္<<ိထ်<ုထ္<<ုထ်<ေထ္
<<ေထ်<ောထ္<<ောထ်<<ေါထ္<<ေါထ်<ိုထ္<<ိုထ်<ဒ္<<ဒ်<ာဒ္<<ာဒ်<<ါဒ္<<ါဒ်<ိဒ
္<<ိဒ်<ုဒ္<<ုဒ်<ေဒ္<<ေဒ်<ောဒ္<<ောဒ်<<ေါဒ္<<ေါဒ်<ိုဒ္<<ိုဒ်<ဓ္<<ဓ်<ာဓ
္<<ာဓ်<<ါဓ္<<ါဓ်<ိဓ္<<ိဓ်<ုဓ္<<ုဓ်<ေဓ္<<ေဓ်<ောဓ္<<ောဓ်<<ေါဓ္<<ေါဓ်<ိ
ုဓ္<<ိုဓ်<န္<<န်<ာန္<<ာန်<<ါန္<<ါန်<ိန္<<ိန်<ုန္<<ုန်<ေန္<<ေန်<ောန္<
<ောန်<<ေါန္<<ေါန်<ိုန္<<ိုန်<ပ္<<ပ်<ာပ္<<ာပ်<<ါပ္<<ါပ်<ိပ္<<ိပ်<ုပ္<
<ုပ်<ေပ္<<ေပ်<ောပ္<<ောပ်<<ေါပ္<<ေါပ်<ိုပ္<<ိုပ်<ဖ္<<ဖ်<ာဖ္<<ာဖ်<<ါဖ္
<<ါဖ်<ိဖ္<<ိဖ်<ုဖ္<<ုဖ်<ေဖ္<<ေဖ်<ောဖ္<<ောဖ်<<ေါဖ္<<ေါဖ်<ိုဖ္<<ိုဖ်<ဗ
္<<ဗ်<ာဗ္<<ာဗ်<<ါဗ္<<ါဗ်<ိဗ္<<ိဗ်<ုဗ္<<ုဗ်<ေဗ္<<ေဗ်<ောဗ္<<ောဗ်<<ေါဗ္
<<ေါဗ်<ိုဗ္<<ိုဗ်<ဘ္<<ဘ်<ာဘ္<<ာဘ်<<ါဘ္<<ါဘ်<ိဘ္<<ိဘ်<ုဘ္<<ုဘ်<ေဘ္<<ေ
ဘ်<ောဘ္<<ောဘ်<<ေါဘ္<<ေါဘ်<ိုဘ္<<ိုဘ်<မ္<<မ်<ာမ္<<ာမ်<<ါမ္<<ါမ်<ိမ္<<
ိမ်<ုမ္<<ုမ်<ေမ္<<ေမ်<ောမ္<<ောမ်<<ေါမ္<<ေါမ်<ိုမ္<<ိုမ်<ယ္<<ယ်<ာယ္<<
ာယ်<<ါယ္<<ါယ်<ိယ္<<ိယ်<ုယ္<<ုယ်<ေယ္<<ေယ်<ောယ္<<ောယ်<<ေါယ္<<ေါယ်<ိုယ္
<<ိုယ်<ရ္<<ရ်<ာရ္<<ာရ်<<ါရ္<<ါရ်<ိရ္<<ိရ်<ုရ္<<ုရ်<ေရ္<<ေရ်<ောရ္<<ော
ရ်<<ေါရ္<<ေါရ်<ိုရ္<<ိုရ်<လ္<<လ်<ာလ္<<ာလ်<<ါလ္<<ါလ်<ိလ္<<ိလ်<ုလ္<<ုလ
်<ေလ္<<ေလ်<ောလ္<<ောလ်<<ေါလ္<<ေါလ်<ိုလ္<<ိုလ်<ဝ်<ာဝ်<<ါဝ်<ိဝ်<ုဝ်<ေဝ်
<ောဝ်<<ေါဝ်<ိုဝ်<သ္<<သ်<ာသ္<<ာသ်<<ါသ္<<ါသ်<ိသ္<<ိသ်<ုသ္<<ုသ်<ေသ္<<ေသ
်<ောသ္<<ောသ်<<ေါသ္<<ေါသ်<ိုသ္<<ိုသ်<ဟ္<<ဟ်<ာဟ္<<ာဟ်<<ါဟ္<<ါဟ်<ိဟ္<<ိ
ဟ်<ုဟ္<<ုဟ်<ေဟ္<<ေဟ်<ောဟ္<<ောဟ်<<ေါဟ္<<ေါဟ်<ိုဟ္<<ိုဟ်<ဠ်<ာဠ်<<ါဠ်<ိ
ဠ်<ုဠ်<ေဠ်<ောဠ်<<ေါဠ်<ိုဠ်<အ်<ာအ်<<ါအ်<ိအ်<ုအ်<ေအ်<ောအ်<<ေါအ်<ိုအ်<ၞ
<ၟ<ျ<ြ<ၠ<ွ<ႂ<ှ<ျွ<ြွ<ျှ<ြှ<ွှ<ျွှ<ြွှ
&အိ<<<ဣ
&အီ<<<ဤ
&အု<<<ဥ
&အူ<<<ဦ
&အေ<<<ဧ<<<ဨ
&အော<<<ဩ
&အော်<<<ဪ
&ိမ်<ိံ<ိမ့်<ိံ့'\u000A'<ိမ်း<ိံး
&ုမ်<ုံ<ုမ့်<ုံ့'\u000A'<ုမ်း<ုံး
&အုံ<<<ဥုံ
&အိက္<<<ဣက္
&အိက်<<<ဣက်
&အုက္<<<ဥက္
&အုက်<<<ဥက်
&အေက္<<<ဧက္
&အေက်<<<ဧက်
&အောက္<<<ဩက္
&အောက်<<<ဩက်
&အောက္<<<ဩောက္
&အောက်<<<ဩောက်
&အိခ္<<<ဣခ္
&အိခ်<<<ဣခ်
&အုခ္<<<ဥခ္
&အုခ်<<<ဥခ်
&အေခ္<<<ဧခ္
&အေခ်<<<ဧခ်
&အောခ္<<<ဩခ္
&အောခ်<<<ဩခ်
&အောခ္<<<ဩောခ္
&အောခ်<<<ဩောခ်
&အိဂ္<<<ဣဂ္
&အိဂ်<<<ဣဂ်
&အုဂ္<<<ဥဂ္
&အုဂ်<<<ဥဂ်
&အေဂ္<<<ဧဂ္
&အေဂ်<<<ဧဂ်
&အောဂ္<<<ဩဂ္
&အောဂ်<<<ဩဂ်
&အောဂ္<<<ဩောဂ္
&အောဂ်<<<ဩောဂ်
&အိဃ္<<<ဣဃ္
&အိဃ်<<<ဣဃ်
&အုဃ္<<<ဥဃ္
&အုဃ်<<<ဥဃ်
&အေဃ္<<<ဧဃ္
&အေဃ်<<<ဧဃ်
&အောဃ္<<<ဩဃ္
&အောဃ်<<<ဩဃ်
&အောဃ္<<<ဩောဃ္
&အောဃ်<<<ဩောဃ်
&အိင္<<<ဣင္
&အိင်<<<ဣင်
&အုင္<<<ဥင္
&အုင်<<<ဥင်
&အေင္<<<ဧင္
&အေင်<<<ဧင်
&အောင္<<<ဩင္
&အောင်<<<ဩင်
&အောင္<<<ဩောင္
&အောင်<<<ဩောင်
&အိစ္<<<ဣစ္
&အိစ်<<<ဣစ်
&အုစ္<<<ဥစ္
&အုစ်<<<ဥစ်
&အေစ္<<<ဧစ္
&အေစ်<<<ဧစ်
&အောစ္<<<ဩစ္
&အောစ်<<<ဩစ်
&အောစ္<<<ဩောစ္
&အောစ်<<<ဩောစ်
&အိဆ္<<<ဣဆ္
&အိဆ်<<<ဣဆ်
&အုဆ္<<<ဥဆ္
&အုဆ်<<<ဥဆ်
&အေဆ္<<<ဧဆ္
&အေဆ်<<<ဧဆ်
&အောဆ္<<<ဩဆ္
&အောဆ်<<<ဩဆ်
&အောဆ္<<<ဩောဆ္
&အောဆ်<<<ဩောဆ်
&အိဇ္<<<ဣဇ္
&အိဇ်<<<ဣဇ်
&အုဇ္<<<ဥဇ္
&အုဇ်<<<ဥဇ်
&အေဇ္<<<ဧဇ္
&အေဇ်<<<ဧဇ်
&အောဇ္<<<ဩဇ္
&အောဇ်<<<ဩဇ်
&အောဇ္<<<ဩောဇ္
&အောဇ်<<<ဩောဇ်
&အိဉ္<<<ဣဉ္
&အိဉ်<<<ဣဉ်
&အုဉ္<<<ဥဉ္
&အုဉ်<<<ဥဉ်
&အေဉ္<<<ဧဉ္
&အေဉ်<<<ဧဉ်
&အောဉ္<<<ဩဉ္
&အောဉ်<<<ဩဉ်
&အောဉ္<<<ဩောဉ္
&အောဉ်<<<ဩောဉ်
&အိည္<<<ဣည္
&အိည်<<<ဣည်
&အုည္<<<ဥည္
&အုည်<<<ဥည်
&အေည္<<<ဧည္
&အေည်<<<ဧည်
&အောည္<<<ဩည္
&အောည်<<<ဩည်
&အောည္<<<ဩောည္
&အောည်<<<ဩောည်
&အိဋ္<<<ဣဋ္
&အိဋ်<<<ဣဋ်
&အုဋ္<<<ဥဋ္
&အုဋ်<<<ဥဋ်
&အေဋ္<<<ဧဋ္
&အေဋ်<<<ဧဋ်
&အောဋ္<<<ဩဋ္
&အောဋ်<<<ဩဋ်
&အောဋ္<<<ဩောဋ္
&အောဋ်<<<ဩောဋ်
&အိဌ္<<<ဣဌ္
&အိဌ်<<<ဣဌ်
&အုဌ္<<<ဥဌ္
&အုဌ်<<<ဥဌ်
&အေဌ္<<<ဧဌ္
&အေဌ်<<<ဧဌ်
&အောဌ္<<<ဩဌ္
&အောဌ်<<<ဩဌ်
&အောဌ္<<<ဩောဌ္
&အောဌ်<<<ဩောဌ်
&အိဍ္<<<ဣဍ္
&အိဍ်<<<ဣဍ်
&အုဍ္<<<ဥဍ္
&အုဍ်<<<ဥဍ်
&အေဍ္<<<ဧဍ္
&အေဍ်<<<ဧဍ်
&အောဍ္<<<ဩဍ္
&အောဍ်<<<ဩဍ်
&အောဍ္<<<ဩောဍ္
&အောဍ်<<<ဩောဍ်
&အိဎ္<<<ဣဎ္
&အိဎ်<<<ဣဎ်
&အုဎ္<<<ဥဎ္
&အုဎ်<<<ဥဎ်
&အေဎ္<<<ဧဎ္
&အေဎ်<<<ဧဎ်
&အောဎ္<<<ဩဎ္
&အောဎ်<<<ဩဎ်
&အောဎ္<<<ဩောဎ္
&အောဎ်<<<ဩောဎ်
&အိဏ္<<<ဣဏ္
&အိဏ်<<<ဣဏ်
&အုဏ္<<<ဥဏ္
&အုဏ်<<<ဥဏ်
&အေဏ္<<<ဧဏ္
&အေဏ်<<<ဧဏ်
&အောဏ္<<<ဩဏ္
&အောဏ်<<<ဩဏ်
&အောဏ္<<<ဩောဏ္
&အောဏ်<<<ဩောဏ်
&အိတ္<<<ဣတ္
&အိတ်<<<ဣတ်
&အုတ္<<<ဥတ္
&အုတ်<<<ဥတ်
&အေတ္<<<ဧတ္
&အေတ်<<<ဧတ်
&အောတ္<<<ဩတ္
&အောတ်<<<ဩတ်
&အောတ္<<<ဩောတ္
&အောတ်<<<ဩောတ်
&အိထ္<<<ဣထ္
&အိထ်<<<ဣထ်
&အုထ္<<<ဥထ္
&အုထ်<<<ဥထ်
&အေထ္<<<ဧထ္
&အေထ်<<<ဧထ်
&အောထ္<<<ဩထ္
&အောထ်<<<ဩထ်
&အောထ္<<<ဩောထ္
&အောထ်<<<ဩောထ်
&အိဒ္<<<ဣဒ္
&အိဒ်<<<ဣဒ်
&အုဒ္<<<ဥဒ္
&အုဒ်<<<ဥဒ်
&အေဒ္<<<ဧဒ္
&အေဒ်<<<ဧဒ်
&အောဒ္<<<ဩဒ္
&အောဒ်<<<ဩဒ်
&အောဒ္<<<ဩောဒ္
&အောဒ်<<<ဩောဒ်
&အိဓ္<<<ဣဓ္
&အိဓ်<<<ဣဓ်
&အုဓ္<<<ဥဓ္
&အုဓ်<<<ဥဓ်
&အေဓ္<<<ဧဓ္
&အေဓ်<<<ဧဓ်
&အောဓ္<<<ဩဓ္
&အောဓ်<<<ဩဓ်
&အောဓ္<<<ဩောဓ္
&အောဓ်<<<ဩောဓ်
&အိန္<<<ဣန္
&အိန်<<<ဣန်
&အုန္<<<ဥန္
&အုန်<<<ဥန်
&အေန္<<<ဧန္
&အေန်<<<ဧန်
&အောန္<<<ဩန္
&အောန်<<<ဩန်
&အောန္<<<ဩောန္
&အောန်<<<ဩောန်
&အိပ္<<<ဣပ္
&အိပ်<<<ဣပ်
&အုပ္<<<ဥပ္
&အုပ်<<<ဥပ်
&အေပ္<<<ဧပ္
&အေပ်<<<ဧပ်
&အောပ္<<<ဩပ္
&အောပ်<<<ဩပ်
&အောပ္<<<ဩောပ္
&အောပ်<<<ဩောပ်
&အိဖ္<<<ဣဖ္
&အိဖ်<<<ဣဖ်
&အုဖ္<<<ဥဖ္
&အုဖ်<<<ဥဖ်
&အေဖ္<<<ဧဖ္
&အေဖ်<<<ဧဖ်
&အောဖ္<<<ဩဖ္
&အောဖ်<<<ဩဖ်
&အောဖ္<<<ဩောဖ္
&အောဖ်<<<ဩောဖ်
&အိဗ္<<<ဣဗ္
&အိဗ်<<<ဣဗ်
&အုဗ္<<<ဥဗ္
&အုဗ်<<<ဥဗ်
&အေဗ္<<<ဧဗ္
&အေဗ်<<<ဧဗ်
&အောဗ္<<<ဩဗ္
&အောဗ်<<<ဩဗ်
&အောဗ္<<<ဩောဗ္
&အောဗ်<<<ဩောဗ်
&အိဘ္<<<ဣဘ္
&အိဘ်<<<ဣဘ်
&အုဘ္<<<ဥဘ္
&အုဘ်<<<ဥဘ်
&အေဘ္<<<ဧဘ္
&အေဘ်<<<ဧဘ်
&အောဘ္<<<ဩဘ္
&အောဘ်<<<ဩဘ်
&အောဘ္<<<ဩောဘ္
&အောဘ်<<<ဩောဘ်
&အိမ္<<<ဣမ္
&အိမ်<<<ဣမ်
&အုမ္<<<ဥမ္
&အုမ်<<<ဥမ်
&အေမ္<<<ဧမ္
&အေမ်<<<ဧမ်
&အောမ္<<<ဩမ္
&အောမ်<<<ဩမ်
&အောမ္<<<ဩောမ္
&အောမ်<<<ဩောမ်
&အိယ္<<<ဣယ္
&အိယ်<<<ဣယ်
&အုယ္<<<ဥယ္
&အုယ်<<<ဥယ်
&အေယ္<<<ဧယ္
&အေယ်<<<ဧယ်
&အောယ္<<<ဩယ္
&အောယ်<<<ဩယ်
&အောယ္<<<ဩောယ္
&အောယ်<<<ဩောယ်
&အိရ္<<<ဣရ္
&အိရ်<<<ဣရ်
&အုရ္<<<ဥရ္
&အုရ်<<<ဥရ်
&အေရ္<<<ဧရ္
&အေရ်<<<ဧရ်
&အောရ္<<<ဩရ္
&အောရ်<<<ဩရ်
&အောရ္<<<ဩောရ္
&အောရ်<<<ဩောရ်
&အိလ္<<<ဣလ္
&အိလ်<<<ဣလ်
&အုလ္<<<ဥလ္
&အုလ်<<<ဥလ်
&အေလ္<<<ဧလ္
&အေလ်<<<ဧလ်
&အောလ္<<<ဩလ္
&အောလ်<<<ဩလ်
&အောလ္<<<ဩောလ္
&အောလ်<<<ဩောလ်
&အိသ္<<<ဣသ္
&အိသ်<<<ဣသ်
&အုသ္<<<ဥသ္
&အုသ်<<<ဥသ်
&အေသ္<<<ဧသ္
&အေသ်<<<ဧသ်
&အောသ္<<<ဩသ္
&အောသ်<<<ဩသ်
&အောသ္<<<ဩောသ္
&အောသ်<<<ဩောသ်
&အိဟ္<<<ဣဟ္
&အိဟ်<<<ဣဟ်
&အုဟ္<<<ဥဟ္
&အုဟ်<<<ဥဟ်
&အေဟ္<<<ဧဟ္
&အေဟ်<<<ဧဟ်
&အောဟ္<<<ဩဟ္
&အောဟ်<<<ဩဟ်
&အောဟ္<<<ဩောဟ္
&အောဟ်<<<ဩောဟ်
&ောက်ကျ=ောက်ျ
&န်နုပ်=န်ုပ်
&ေသ္သ=ေဿ
&ိသ္သ=ိဿ
&ုသ္သ=ုဿ
&အိသ္သ<<<ဣဿ
&အုသ္သ<<<ဥဿ
&သ္သ=ဿ
&နှိုက်<<၌
&ရွေ့<<၍
&လည်းကောင်း<<၎င်း
&အိ<<၏
&လက်ယာ=လက်ျာ
&သမီ=သ္မီ
&ထမင်း=ထ္မင်း
&လက်ဘက်=လ္ဘက်

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: defaultnumberingprovider.cxx,v $ * $RCSfile: defaultnumberingprovider.cxx,v $
* $Revision: 1.30 $ * $Revision: 1.30.24.2 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -120,6 +120,13 @@ static sal_Unicode table_Alphabet_dz[] = {
0x0F62, 0x0F63, 0x0F64, 0x0F66, 0x0F67, 0x0F68 0x0F62, 0x0F63, 0x0F64, 0x0F66, 0x0F67, 0x0F68
}; };
static sal_Unicode table_Alphabet_my[] = {
0x1000, 0x1001, 0x1002, 0x1003, 0x1004, 0x1005, 0x1006, 0x1007,
0x1008,/*0x1009,*/0x100A, 0x100B, 0x100C, 0x100D, 0x100E, 0x100F,
0x1010, 0x1011, 0x1012, 0x1013, 0x1014, 0x1015, 0x1016, 0x1017,
0x1018, 0x1019, 0x101A, 0x101B, 0x101C, 0x101D, 0x101E, 0x101F,
0x1020, 0x1021
};
// Bulgarian Cyrillic upper case letters // Bulgarian Cyrillic upper case letters
static sal_Unicode table_CyrillicUpperLetter_bg[] = { static sal_Unicode table_CyrillicUpperLetter_bg[] = {
@ -153,6 +160,22 @@ static sal_Unicode table_CyrillicLowerLetter_ru[] = {
0x0449, 0x044B, 0x044D, 0x044E, 0x044F 0x0449, 0x044B, 0x044D, 0x044E, 0x044F
}; };
// Serbian Cyrillic upper letters
static sal_Unicode table_CyrillicUpperLetter_sr[] = {
0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0402, 0x0415, 0x0416,
0x0417, 0x0418, 0x0408, 0x041A, 0x041B, 0x0409, 0x041C, 0x041D,
0x040A, 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x040B, 0x0423,
0x0424, 0x0425, 0x0426, 0x0427, 0x040F, 0x0428
};
// Serbian cyrillic lower letters
static sal_Unicode table_CyrillicLowerLetter_sr[] = {
0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0452, 0x0435, 0x0436,
0x0437, 0x0438, 0x0458, 0x043A, 0x043B, 0x0459, 0x043C, 0x043D,
0x045A, 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x045B, 0x0443,
0x0444, 0x0445, 0x0446, 0x0447, 0x045F, 0x0448
};
static sal_Unicode table_Alphabet_fa[] = { static sal_Unicode table_Alphabet_fa[] = {
0x0622, 0x0628, 0x067E, 0x062A, 0x062B, 0x062C, 0x0686, 0x062D, 0x0622, 0x0628, 0x067E, 0x062A, 0x062B, 0x062C, 0x0686, 0x062D,
0x062E, 0x062F, 0x0630, 0x0631, 0x0632, 0x0698, 0x0633, 0x0634, 0x062E, 0x062F, 0x0630, 0x0631, 0x0632, 0x0698, 0x0633, 0x0634,
@ -555,6 +578,9 @@ DefaultNumberingProvider::makeNumberingString( const Sequence<beans::PropertyVal
case CHARS_LAO: case CHARS_LAO:
lcl_formatChars(table_Alphabet_lo, sizeof(table_Alphabet_lo) / sizeof(sal_Unicode), number - 1, result); lcl_formatChars(table_Alphabet_lo, sizeof(table_Alphabet_lo) / sizeof(sal_Unicode), number - 1, result);
break; break;
case CHARS_MYANMAR:
lcl_formatChars(table_Alphabet_my, sizeof(table_Alphabet_my) / sizeof(sal_Unicode), number - 1, result);
break;
case CHARS_TIBETAN: case CHARS_TIBETAN:
lcl_formatChars(table_Alphabet_dz, sizeof(table_Alphabet_dz) / sizeof(sal_Unicode), number - 1, result); lcl_formatChars(table_Alphabet_dz, sizeof(table_Alphabet_dz) / sizeof(sal_Unicode), number - 1, result);
break; break;
@ -610,6 +636,32 @@ DefaultNumberingProvider::makeNumberingString( const Sequence<beans::PropertyVal
sizeof(table_CyrillicLowerLetter_ru[0]), number-1, sizeof(table_CyrillicLowerLetter_ru[0]), number-1,
result); // 1=>a, 2=>b, ..., 27=>z, 28=>aa, 29=>bb, ... result); // 1=>a, 2=>b, ..., 27=>z, 28=>aa, 29=>bb, ...
break; break;
case CHARS_CYRILLIC_UPPER_LETTER_SR:
lcl_formatChars2( table_CyrillicUpperLetter_sr,
table_CyrillicLowerLetter_sr,
sizeof(table_CyrillicLowerLetter_sr) /
sizeof(table_CyrillicLowerLetter_sr[0]), number-1,
result); // 1=>a, 2=>b, ..., 27=>z, 28=>Aa, 29=>Ab, ...
break;
case CHARS_CYRILLIC_LOWER_LETTER_SR:
lcl_formatChars( table_CyrillicLowerLetter_sr,
sizeof(table_CyrillicLowerLetter_sr) /
sizeof(table_CyrillicLowerLetter_sr[0]), number-1,
result); // 1=>a, 2=>b, ..., 27=>z, 28=>aa, 29=>ab, ...
break;
case CHARS_CYRILLIC_UPPER_LETTER_N_SR:
lcl_formatChars3( table_CyrillicUpperLetter_sr,
table_CyrillicLowerLetter_sr,
sizeof(table_CyrillicLowerLetter_sr) /
sizeof(table_CyrillicLowerLetter_sr[0]), number-1,
result); // 1=>a, 2=>b, ..., 27=>z, 28=>Aa, 29=>Bb, ...
break;
case CHARS_CYRILLIC_LOWER_LETTER_N_SR:
lcl_formatChars1( table_CyrillicLowerLetter_sr,
sizeof(table_CyrillicLowerLetter_sr) /
sizeof(table_CyrillicLowerLetter_sr[0]), number-1,
result); // 1=>a, 2=>b, ..., 27=>z, 28=>aa, 29=>bb, ...
break;
case CHARS_PERSIAN: case CHARS_PERSIAN:
lcl_formatChars(table_Alphabet_fa, sizeof(table_Alphabet_fa) / sizeof(sal_Unicode), number - 1, result); lcl_formatChars(table_Alphabet_fa, sizeof(table_Alphabet_fa) / sizeof(sal_Unicode), number - 1, result);
break; break;
@ -686,6 +738,7 @@ static const Supported_NumberingType aSupportedTypes[] =
{style::NumberingType::CHARS_NEPALI, NULL, LANG_CTL}, {style::NumberingType::CHARS_NEPALI, NULL, LANG_CTL},
{style::NumberingType::CHARS_KHMER, NULL, LANG_CTL}, {style::NumberingType::CHARS_KHMER, NULL, LANG_CTL},
{style::NumberingType::CHARS_LAO, NULL, LANG_CTL}, {style::NumberingType::CHARS_LAO, NULL, LANG_CTL},
{style::NumberingType::CHARS_MYANMAR, NULL, LANG_CTL},
{style::NumberingType::CHARS_TIBETAN, NULL, LANG_CTL}, {style::NumberingType::CHARS_TIBETAN, NULL, LANG_CTL},
{style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_BG, C_CYR_A ", " C_CYR_B ", .., " C_CYR_A S_CYR_A ", " C_CYR_A S_CYR_B ", ... (bg)", LANG_ALL}, {style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_BG, C_CYR_A ", " C_CYR_B ", .., " C_CYR_A S_CYR_A ", " C_CYR_A S_CYR_B ", ... (bg)", LANG_ALL},
{style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_BG, S_CYR_A ", " S_CYR_B ", .., " S_CYR_A S_CYR_A ", " S_CYR_A S_CYR_B ", ... (bg)", LANG_ALL}, {style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_BG, S_CYR_A ", " S_CYR_B ", .., " S_CYR_A S_CYR_A ", " S_CYR_A S_CYR_B ", ... (bg)", LANG_ALL},
@ -695,6 +748,10 @@ static const Supported_NumberingType aSupportedTypes[] =
{style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_RU, S_CYR_A ", " S_CYR_B ", .., " S_CYR_A S_CYR_A ", " S_CYR_A S_CYR_B ", ... (ru)", LANG_ALL}, {style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_RU, S_CYR_A ", " S_CYR_B ", .., " S_CYR_A S_CYR_A ", " S_CYR_A S_CYR_B ", ... (ru)", LANG_ALL},
{style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_N_RU, C_CYR_A ", " C_CYR_B ", .., " C_CYR_A S_CYR_A ", " C_CYR_B S_CYR_B ", ... (ru)", LANG_ALL}, {style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_N_RU, C_CYR_A ", " C_CYR_B ", .., " C_CYR_A S_CYR_A ", " C_CYR_B S_CYR_B ", ... (ru)", LANG_ALL},
{style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_N_RU, S_CYR_A ", " S_CYR_B ", .., " S_CYR_A S_CYR_A ", " S_CYR_B S_CYR_B ", ... (ru)", LANG_ALL}, {style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_N_RU, S_CYR_A ", " S_CYR_B ", .., " S_CYR_A S_CYR_A ", " S_CYR_B S_CYR_B ", ... (ru)", LANG_ALL},
{style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_SR, C_CYR_A ", " C_CYR_B ", .., " C_CYR_A S_CYR_A ", " C_CYR_A S_CYR_B ", ... (sr)", LANG_ALL},
{style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_SR, S_CYR_A ", " S_CYR_B ", .., " S_CYR_A S_CYR_A ", " S_CYR_A S_CYR_B ", ... (sr)", LANG_ALL},
{style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_N_SR, C_CYR_A ", " C_CYR_B ", .., " C_CYR_A S_CYR_A ", " C_CYR_B S_CYR_B ", ... (sr)", LANG_ALL},
{style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_N_SR, S_CYR_A ", " S_CYR_B ", .., " S_CYR_A S_CYR_A ", " S_CYR_B S_CYR_B ", ... (sr)", LANG_ALL},
{style::NumberingType::CHARS_PERSIAN, NULL, LANG_CTL}, {style::NumberingType::CHARS_PERSIAN, NULL, LANG_CTL},
}; };
static const sal_Int32 nSupported_NumberingTypes = sizeof(aSupportedTypes) / sizeof(Supported_NumberingType); static const sal_Int32 nSupported_NumberingTypes = sizeof(aSupportedTypes) / sizeof(Supported_NumberingType);

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: isolang.cxx,v $ * $RCSfile: isolang.cxx,v $
* $Revision: 1.16 $ * $Revision: 1.16.24.7 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -97,8 +97,8 @@ struct IsoLangOtherEntry
* only" usage and locale fall back should be cleaned up and made consistent. I * only" usage and locale fall back should be cleaned up and made consistent. I
* strongly doubt that most callers exactly expect the behavior described. * strongly doubt that most callers exactly expect the behavior described.
* Currently these primary LangIDs are used literally in OOo code: * Currently these primary LangIDs are used literally in OOo code:
* LANGUAGE_ENGLISH LANGUAGE_CHINESE LANGUAGE_ARABIC LANGUAGE_MALAY * LANGUAGE_ENGLISH LANGUAGE_CHINESE LANGUAGE_MALAY
* LANGUAGE_AZERI LANGUAGE_UZBEK LANGUAGE_URDU LANGUAGE_KASHMIRI * LANGUAGE_AZERI LANGUAGE_URDU LANGUAGE_KASHMIRI
*/ */
static MsLangId::IsoLangEntry const aImplIsoLangEntries[] = static MsLangId::IsoLangEntry const aImplIsoLangEntries[] =
@ -114,9 +114,8 @@ static MsLangId::IsoLangEntry const aImplIsoLangEntries[] =
{ LANGUAGE_GERMAN, "de", "DE" }, { LANGUAGE_GERMAN, "de", "DE" },
{ LANGUAGE_ITALIAN, "it", "IT" }, { LANGUAGE_ITALIAN, "it", "IT" },
{ LANGUAGE_DUTCH, "nl", "NL" }, { LANGUAGE_DUTCH, "nl", "NL" },
{ LANGUAGE_SPANISH, "es", "ES" },
{ LANGUAGE_SPANISH, "es", "" },
{ LANGUAGE_SPANISH_MODERN, "es", "ES" }, { LANGUAGE_SPANISH_MODERN, "es", "ES" },
{ LANGUAGE_SPANISH_DATED, "es", "ES" },
{ LANGUAGE_PORTUGUESE, "pt", "PT" }, { LANGUAGE_PORTUGUESE, "pt", "PT" },
{ LANGUAGE_PORTUGUESE_BRAZILIAN, "pt", "BR" }, { LANGUAGE_PORTUGUESE_BRAZILIAN, "pt", "BR" },
{ LANGUAGE_DANISH, "da", "DK" }, { LANGUAGE_DANISH, "da", "DK" },
@ -147,19 +146,8 @@ static MsLangId::IsoLangEntry const aImplIsoLangEntries[] =
{ LANGUAGE_GERMAN_AUSTRIAN, "de", "AT" }, { LANGUAGE_GERMAN_AUSTRIAN, "de", "AT" },
{ LANGUAGE_ITALIAN_SWISS, "it", "CH" }, { LANGUAGE_ITALIAN_SWISS, "it", "CH" },
{ LANGUAGE_ALBANIAN, "sq", "AL" }, { LANGUAGE_ALBANIAN, "sq", "AL" },
// #i93555# moved entry below { LANGUAGE_ARABIC, "ar", "" },
{ LANGUAGE_ARABIC_EGYPT, "ar", "EG" },
// #i93555# HACK: language-only entry moved here to have a match on locale
// present in language list box to not display "Unknown" for an Arabic 'ar'
// language pack. This may have some side effect on code dealing with
// LANGUAGE_ARABIC if it converts to/from strings. On the other hand, usage
// of language-only usually is done wrong anyway..
/* FIXME: fix all "primary language only" usage, see also comment above
* this table, and then add a few language-only entries to the language
* list box if really necessary, but do not make them available for
* language attribution and so on, only for UI language selection! */
{ LANGUAGE_ARABIC, "ar", "" },
{ LANGUAGE_ARABIC_SAUDI_ARABIA, "ar", "SA" }, { LANGUAGE_ARABIC_SAUDI_ARABIA, "ar", "SA" },
{ LANGUAGE_ARABIC_EGYPT, "ar", "EG" },
{ LANGUAGE_ARABIC_UAE, "ar", "AE" }, { LANGUAGE_ARABIC_UAE, "ar", "AE" },
{ LANGUAGE_ARABIC_IRAQ, "ar", "IQ" }, { LANGUAGE_ARABIC_IRAQ, "ar", "IQ" },
{ LANGUAGE_ARABIC_LIBYA, "ar", "LY" }, { LANGUAGE_ARABIC_LIBYA, "ar", "LY" },
@ -174,6 +162,16 @@ static MsLangId::IsoLangEntry const aImplIsoLangEntries[] =
{ LANGUAGE_ARABIC_KUWAIT, "ar", "KW" }, { LANGUAGE_ARABIC_KUWAIT, "ar", "KW" },
{ LANGUAGE_ARABIC_BAHRAIN, "ar", "BH" }, { LANGUAGE_ARABIC_BAHRAIN, "ar", "BH" },
{ LANGUAGE_ARABIC_QATAR, "ar", "QA" }, { LANGUAGE_ARABIC_QATAR, "ar", "QA" },
{ LANGUAGE_USER_ARABIC_CHAD, "ar", "TD" },
{ LANGUAGE_USER_ARABIC_COMOROS, "ar", "KM" },
{ LANGUAGE_USER_ARABIC_DJIBOUTI, "ar", "DJ" },
{ LANGUAGE_USER_ARABIC_ERITREA, "ar", "ER" },
{ LANGUAGE_USER_ARABIC_ISRAEL, "ar", "IL" },
{ LANGUAGE_USER_ARABIC_MAURITANIA, "ar", "MR" },
{ LANGUAGE_USER_ARABIC_PALESTINE, "ar", "PS" },
{ LANGUAGE_USER_ARABIC_SOMALIA, "ar", "SO" },
{ LANGUAGE_USER_ARABIC_SUDAN, "ar", "SD" },
{ LANGUAGE_ARABIC_PRIMARY_ONLY, "ar", "" },
{ LANGUAGE_BASQUE, "eu", "" }, { LANGUAGE_BASQUE, "eu", "" },
{ LANGUAGE_BULGARIAN, "bg", "BG" }, { LANGUAGE_BULGARIAN, "bg", "BG" },
{ LANGUAGE_CZECH, "cs", "CZ" }, { LANGUAGE_CZECH, "cs", "CZ" },
@ -201,7 +199,7 @@ static MsLangId::IsoLangEntry const aImplIsoLangEntries[] =
{ LANGUAGE_NORWEGIAN_BOKMAL, "nb", "NO" }, { LANGUAGE_NORWEGIAN_BOKMAL, "nb", "NO" },
{ LANGUAGE_NORWEGIAN_NYNORSK, "nn", "NO" }, { LANGUAGE_NORWEGIAN_NYNORSK, "nn", "NO" },
{ LANGUAGE_POLISH, "pl", "PL" }, { LANGUAGE_POLISH, "pl", "PL" },
{ LANGUAGE_RHAETO_ROMAN, "rm", "" }, { LANGUAGE_RHAETO_ROMAN, "rm", "CH" },
{ LANGUAGE_ROMANIAN, "ro", "RO" }, { LANGUAGE_ROMANIAN, "ro", "RO" },
{ LANGUAGE_ROMANIAN_MOLDOVA, "ro", "MD" }, { LANGUAGE_ROMANIAN_MOLDOVA, "ro", "MD" },
{ LANGUAGE_SLOVAK, "sk", "SK" }, { LANGUAGE_SLOVAK, "sk", "SK" },
@ -258,7 +256,6 @@ static MsLangId::IsoLangEntry const aImplIsoLangEntries[] =
{ LANGUAGE_AZERI, "az", "" }, { LANGUAGE_AZERI, "az", "" },
{ LANGUAGE_AZERI_LATIN, "az", "AZ" }, { LANGUAGE_AZERI_LATIN, "az", "AZ" },
// { LANGUAGE_AZERI_CYRILLIC, "az", "AZ" }, // script codes not supported yet // { LANGUAGE_AZERI_CYRILLIC, "az", "AZ" }, // script codes not supported yet
{ LANGUAGE_UZBEK, "uz", "" },
{ LANGUAGE_UZBEK_LATIN, "uz", "UZ" }, { LANGUAGE_UZBEK_LATIN, "uz", "UZ" },
// { LANGUAGE_UZBEK_CYRILLIC, "uz", "UZ" }, // script codes not supported yet // { LANGUAGE_UZBEK_CYRILLIC, "uz", "UZ" }, // script codes not supported yet
{ LANGUAGE_BENGALI_BANGLADESH, "bn", "BD" }, { LANGUAGE_BENGALI_BANGLADESH, "bn", "BD" },
@ -363,7 +360,6 @@ static MsLangId::IsoLangEntry const aImplIsoLangEntries[] =
{ LANGUAGE_CHEROKEE_UNITED_STATES, "chr", "US" }, { LANGUAGE_CHEROKEE_UNITED_STATES, "chr", "US" },
{ LANGUAGE_INUKTITUT_LATIN_CANADA, "iu", "CA" }, { LANGUAGE_INUKTITUT_LATIN_CANADA, "iu", "CA" },
// { LANGUAGE_INUKTITUT_SYLLABICS_CANADA, "iu", "CA" }, // script codes not supported yet // { LANGUAGE_INUKTITUT_SYLLABICS_CANADA, "iu", "CA" }, // script codes not supported yet
// { LANGUAGE_ARABIC_SUDAN, "ar", "SD" }, // unknown MS-LCID
{ LANGUAGE_SAMI_NORTHERN_NORWAY, "se", "NO" }, { LANGUAGE_SAMI_NORTHERN_NORWAY, "se", "NO" },
{ LANGUAGE_SAMI_INARI, "smn", "FI" }, { LANGUAGE_SAMI_INARI, "smn", "FI" },
{ LANGUAGE_SAMI_LULE_NORWAY, "smj", "NO" }, { LANGUAGE_SAMI_LULE_NORWAY, "smj", "NO" },
@ -448,6 +444,8 @@ static MsLangId::IsoLangEntry const aImplIsoLangEntries[] =
{ LANGUAGE_USER_SANTALI_INDIA, "sat", "IN" }, { LANGUAGE_USER_SANTALI_INDIA, "sat", "IN" },
{ LANGUAGE_USER_TETUN, "tet", "ID" }, { LANGUAGE_USER_TETUN, "tet", "ID" },
{ LANGUAGE_USER_TETUN_TIMOR_LESTE, "tet", "TL" }, { LANGUAGE_USER_TETUN_TIMOR_LESTE, "tet", "TL" },
{ LANGUAGE_USER_TOK_PISIN, "tpi", "PG" },
{ LANGUAGE_USER_SHUSWAP, "shs", "CA" },
{ LANGUAGE_NONE, "zxx", "" }, // added to ISO 639-2 on 2006-01-11: Used to declare the absence of linguistic information { LANGUAGE_NONE, "zxx", "" }, // added to ISO 639-2 on 2006-01-11: Used to declare the absence of linguistic information
{ LANGUAGE_DONTKNOW, "", "" } // marks end of table { LANGUAGE_DONTKNOW, "", "" } // marks end of table
}; };
@ -670,7 +668,6 @@ static const MsLangId::IsoLangEntry & lcl_lookupFallbackEntry( LanguageType nLan
{ {
// These are known to have no country assigned. // These are known to have no country assigned.
case LANGUAGE_BASQUE: case LANGUAGE_BASQUE:
case LANGUAGE_RHAETO_ROMAN:
case LANGUAGE_USER_ESPERANTO: case LANGUAGE_USER_ESPERANTO:
case LANGUAGE_USER_INTERLINGUA: case LANGUAGE_USER_INTERLINGUA:
return *pEntry; return *pEntry;
@ -751,7 +748,6 @@ static const MsLangId::IsoLangEntry & lcl_lookupFallbackEntry(
{ {
// These are known to have no country assigned. // These are known to have no country assigned.
case LANGUAGE_BASQUE: case LANGUAGE_BASQUE:
case LANGUAGE_RHAETO_ROMAN:
case LANGUAGE_USER_ESPERANTO: case LANGUAGE_USER_ESPERANTO:
case LANGUAGE_USER_INTERLINGUA: case LANGUAGE_USER_INTERLINGUA:
return *pEntry; return *pEntry;

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: mslangid.cxx,v $ * $RCSfile: mslangid.cxx,v $
* $Revision: 1.10 $ * $Revision: 1.10.24.4 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -209,10 +209,12 @@ bool MsLangId::isRightToLeft( LanguageType nLang )
{ {
switch( nLang & LANGUAGE_MASK_PRIMARY ) switch( nLang & LANGUAGE_MASK_PRIMARY )
{ {
case LANGUAGE_ARABIC & LANGUAGE_MASK_PRIMARY : case LANGUAGE_ARABIC_SAUDI_ARABIA & LANGUAGE_MASK_PRIMARY :
case LANGUAGE_HEBREW & LANGUAGE_MASK_PRIMARY : case LANGUAGE_HEBREW & LANGUAGE_MASK_PRIMARY :
case LANGUAGE_URDU & LANGUAGE_MASK_PRIMARY : case LANGUAGE_URDU & LANGUAGE_MASK_PRIMARY :
case LANGUAGE_FARSI & LANGUAGE_MASK_PRIMARY : case LANGUAGE_FARSI & LANGUAGE_MASK_PRIMARY :
case LANGUAGE_KASHMIRI & LANGUAGE_MASK_PRIMARY :
case LANGUAGE_SINDHI & LANGUAGE_MASK_PRIMARY :
return true; return true;
default: default:
@ -238,6 +240,23 @@ bool MsLangId::hasForbiddenCharacters( LanguageType nLang )
} }
// static
bool MsLangId::needsSequenceChecking( LanguageType nLang )
{
switch (nLang & LANGUAGE_MASK_PRIMARY)
{
case LANGUAGE_BURMESE & LANGUAGE_MASK_PRIMARY:
case LANGUAGE_KHMER & LANGUAGE_MASK_PRIMARY:
case LANGUAGE_LAO & LANGUAGE_MASK_PRIMARY:
case LANGUAGE_THAI & LANGUAGE_MASK_PRIMARY:
return true;
default:
break;
}
return false;
}
// static // static
sal_Int16 MsLangId::getScriptType( LanguageType nLang ) sal_Int16 MsLangId::getScriptType( LanguageType nLang )
{ {
@ -259,6 +278,7 @@ sal_Int16 MsLangId::getScriptType( LanguageType nLang )
case LANGUAGE_ASSAMESE: case LANGUAGE_ASSAMESE:
case LANGUAGE_BENGALI: case LANGUAGE_BENGALI:
case LANGUAGE_BENGALI_BANGLADESH: case LANGUAGE_BENGALI_BANGLADESH:
case LANGUAGE_BURMESE:
case LANGUAGE_FARSI: case LANGUAGE_FARSI:
case LANGUAGE_HEBREW: case LANGUAGE_HEBREW:
case LANGUAGE_MARATHI: case LANGUAGE_MARATHI:
@ -291,6 +311,10 @@ sal_Int16 MsLangId::getScriptType( LanguageType nLang )
case LANGUAGE_URDU_INDIA: case LANGUAGE_URDU_INDIA:
case LANGUAGE_USER_KURDISH_IRAQ: case LANGUAGE_USER_KURDISH_IRAQ:
case LANGUAGE_USER_KURDISH_IRAN: case LANGUAGE_USER_KURDISH_IRAN:
case LANGUAGE_DHIVEHI:
case LANGUAGE_USER_BODO_INDIA:
case LANGUAGE_USER_DOGRI_INDIA:
case LANGUAGE_USER_MAITHILI_INDIA:
nScript = ::com::sun::star::i18n::ScriptType::COMPLEX; nScript = ::com::sun::star::i18n::ScriptType::COMPLEX;
break; break;
@ -312,7 +336,7 @@ sal_Int16 MsLangId::getScriptType( LanguageType nLang )
nScript = ::com::sun::star::i18n::ScriptType::ASIAN; nScript = ::com::sun::star::i18n::ScriptType::ASIAN;
break; break;
// CTL catcher // CTL catcher
case LANGUAGE_ARABIC & LANGUAGE_MASK_PRIMARY: case LANGUAGE_ARABIC_SAUDI_ARABIA & LANGUAGE_MASK_PRIMARY:
nScript = ::com::sun::star::i18n::ScriptType::COMPLEX; nScript = ::com::sun::star::i18n::ScriptType::COMPLEX;
break; break;
// Western (actually not necessarily Latin but also Cyrillic, for example) // Western (actually not necessarily Latin but also Cyrillic, for example)
@ -330,26 +354,49 @@ LanguageType MsLangId::getReplacementForObsoleteLanguage( LanguageType nLang )
{ {
switch (nLang) switch (nLang)
{ {
default:
break; // nothing
case LANGUAGE_OBSOLETE_USER_LATIN: case LANGUAGE_OBSOLETE_USER_LATIN:
nLang = LANGUAGE_LATIN; nLang = LANGUAGE_LATIN;
break;
case LANGUAGE_OBSOLETE_USER_MAORI: case LANGUAGE_OBSOLETE_USER_MAORI:
nLang = LANGUAGE_MAORI_NEW_ZEALAND; nLang = LANGUAGE_MAORI_NEW_ZEALAND;
break;
case LANGUAGE_OBSOLETE_USER_KINYARWANDA: case LANGUAGE_OBSOLETE_USER_KINYARWANDA:
nLang = LANGUAGE_KINYARWANDA_RWANDA; nLang = LANGUAGE_KINYARWANDA_RWANDA;
break;
case LANGUAGE_OBSOLETE_USER_UPPER_SORBIAN: case LANGUAGE_OBSOLETE_USER_UPPER_SORBIAN:
nLang = LANGUAGE_UPPER_SORBIAN_GERMANY; nLang = LANGUAGE_UPPER_SORBIAN_GERMANY;
break;
case LANGUAGE_OBSOLETE_USER_LOWER_SORBIAN: case LANGUAGE_OBSOLETE_USER_LOWER_SORBIAN:
nLang = LANGUAGE_LOWER_SORBIAN_GERMANY; nLang = LANGUAGE_LOWER_SORBIAN_GERMANY;
break;
case LANGUAGE_OBSOLETE_USER_OCCITAN: case LANGUAGE_OBSOLETE_USER_OCCITAN:
nLang = LANGUAGE_OCCITAN_FRANCE; nLang = LANGUAGE_OCCITAN_FRANCE;
break;
case LANGUAGE_OBSOLETE_USER_BRETON: case LANGUAGE_OBSOLETE_USER_BRETON:
nLang = LANGUAGE_BRETON_FRANCE; nLang = LANGUAGE_BRETON_FRANCE;
break;
case LANGUAGE_OBSOLETE_USER_KALAALLISUT: case LANGUAGE_OBSOLETE_USER_KALAALLISUT:
nLang = LANGUAGE_KALAALLISUT_GREENLAND; nLang = LANGUAGE_KALAALLISUT_GREENLAND;
break;
case LANGUAGE_OBSOLETE_USER_LUXEMBOURGISH: case LANGUAGE_OBSOLETE_USER_LUXEMBOURGISH:
nLang = LANGUAGE_LUXEMBOURGISH_LUXEMBOURG; nLang = LANGUAGE_LUXEMBOURGISH_LUXEMBOURG;
default: break;
; // nothing
// The following are not strictly obsolete but should be mapped to a
// replacement locale when encountered.
// no_NO is an alias for nb_NO
case LANGUAGE_NORWEGIAN:
nLang = LANGUAGE_NORWEGIAN_BOKMAL;
break;
// #i94435# A Spanish variant that differs only in collation details we
// do not support.
case LANGUAGE_SPANISH_DATED:
nLang = LANGUAGE_SPANISH_MODERN;
break;
} }
return nLang; return nLang;
} }

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: LocaleNode.cxx,v $ * $RCSfile: LocaleNode.cxx,v $
* $Revision: 1.29.16.1 $ * $Revision: 1.29.24.3 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -307,6 +307,11 @@ void LocaleNode::incError( const char* pStr ) const
fprintf( stderr, "Error: %s\n", pStr); fprintf( stderr, "Error: %s\n", pStr);
} }
void LocaleNode::incError( const ::rtl::OUString& rStr ) const
{
incError( OUStringToOString( rStr, RTL_TEXTENCODING_UTF8).getStr());
}
char* LocaleNode::prepareErrorFormat( const char* pFormat, const char* pDefaultConversion ) const char* LocaleNode::prepareErrorFormat( const char* pFormat, const char* pDefaultConversion ) const
{ {
static char buf[2048]; static char buf[2048];
@ -521,10 +526,15 @@ sal_Int16 LCFormatNode::mnFormats = 0;
void LCFormatNode::generateCode (const OFileWriter &of) const void LCFormatNode::generateCode (const OFileWriter &of) const
{ {
OUString str;
if (mnSection >= 2) if (mnSection >= 2)
incError("more than 2 LC_FORMAT sections"); incError("more than 2 LC_FORMAT sections");
of.writeParameter("replaceFrom", getAttr() -> getValueByName("replaceFrom"), mnSection); of.writeParameter("replaceFrom", getAttr() -> getValueByName("replaceFrom"), mnSection);
of.writeParameter("replaceTo", getAttr() -> getValueByName("replaceTo"), mnSection); str = getAttr() -> getValueByName("replaceTo");
// Locale data generator inserts FFFF for LangID, we need to adapt that.
if (str.endsWithIgnoreAsciiCaseAsciiL( "-FFFF]", 6))
incErrorStr("replaceTo=\"%s\" needs FFFF to be adapted to the real LangID value.", str);
of.writeParameter("replaceTo", str, mnSection);
::rtl::OUString useLocale = getAttr() -> getValueByName("ref"); ::rtl::OUString useLocale = getAttr() -> getValueByName("ref");
if (useLocale.getLength() > 0) { if (useLocale.getLength() > 0) {
switch (mnSection) switch (mnSection)
@ -539,32 +549,58 @@ void LCFormatNode::generateCode (const OFileWriter &of) const
return; return;
} }
sal_Int16 formatCount = mnFormats; sal_Int16 formatCount = mnFormats;
NameSet aMsgId; NameSet aMsgIdSet;
ValueSet aFormatIndex; ValueSet aFormatIndexSet;
NameSet aDefaultsSet;
bool bCtypeIsRef = false; bool bCtypeIsRef = false;
for (sal_Int16 i = 0; i< getNumberOfChildren() ; i++,formatCount++) { for (sal_Int16 i = 0; i< getNumberOfChildren() ; i++,formatCount++) {
LocaleNode * currNode = getChildAt (i); LocaleNode * currNode = getChildAt (i);
::rtl::OUString str; OUString aUsage;
OUString aType;
OUString aFormatIndex;
// currNode -> print(); // currNode -> print();
const Attr * currNodeAttr = currNode->getAttr(); const Attr * currNodeAttr = currNode->getAttr();
//printf ("getLen() = %d\n", currNode->getAttr()->getLength()); //printf ("getLen() = %d\n", currNode->getAttr()->getLength());
str = currNodeAttr -> getValueByName("msgid"); str = currNodeAttr -> getValueByName("msgid");
if (!aMsgId.insert( str).second) if (!aMsgIdSet.insert( str).second)
incErrorStr( "Duplicated msgid=\"%s\" in FormatElement.", str); incErrorStr( "Duplicated msgid=\"%s\" in FormatElement.", str);
of.writeParameter("FormatKey", str, formatCount); of.writeParameter("FormatKey", str, formatCount);
str = currNodeAttr -> getValueByName("default"); str = currNodeAttr -> getValueByName("default");
bool bDefault = str.equalsAscii( "true");
of.writeDefaultParameter("FormatElement", str, formatCount); of.writeDefaultParameter("FormatElement", str, formatCount);
str = currNodeAttr -> getValueByName("type");
of.writeParameter("FormatType", str, formatCount); aType = currNodeAttr -> getValueByName("type");
str = currNodeAttr -> getValueByName("usage"); of.writeParameter("FormatType", aType, formatCount);
of.writeParameter("FormatUsage", str, formatCount);
str = currNodeAttr -> getValueByName("formatindex"); aUsage = currNodeAttr -> getValueByName("usage");
sal_Int16 formatindex = (sal_Int16)str.toInt32(); of.writeParameter("FormatUsage", aUsage, formatCount);
if (!aFormatIndex.insert( formatindex).second)
aFormatIndex = currNodeAttr -> getValueByName("formatindex");
sal_Int16 formatindex = (sal_Int16)aFormatIndex.toInt32();
if (!aFormatIndexSet.insert( formatindex).second)
incErrorInt( "Duplicated formatindex=\"%d\" in FormatElement.", formatindex); incErrorInt( "Duplicated formatindex=\"%d\" in FormatElement.", formatindex);
of.writeIntParameter("Formatindex", formatCount, formatindex); of.writeIntParameter("Formatindex", formatCount, formatindex);
// Ensure only one default per usage and type.
if (bDefault)
{
OUString aKey( aUsage + OUString( sal_Unicode(',')) + aType);
if (!aDefaultsSet.insert( aKey).second)
{
OUString aStr( RTL_CONSTASCII_USTRINGPARAM( "Duplicated default for usage=\""));
aStr += aUsage;
aStr += OUString( RTL_CONSTASCII_USTRINGPARAM( "\" type=\""));
aStr += aType;
aStr += OUString( RTL_CONSTASCII_USTRINGPARAM( "\": formatindex=\""));
aStr += aFormatIndex;
aStr += OUString( RTL_CONSTASCII_USTRINGPARAM( "\"."));
incError( aStr);
}
}
const LocaleNode * n = currNode -> findNode("FormatCode"); const LocaleNode * n = currNode -> findNode("FormatCode");
if (n) if (n)
{ {
@ -712,14 +748,14 @@ void LCFormatNode::generateCode (const OFileWriter &of) const
if (mnSection == 0) if (mnSection == 0)
{ {
// 0..47 MUST be present, 48,49 MUST NOT be present // 0..47 MUST be present, 48,49 MUST NOT be present
ValueSet::const_iterator aIter( aFormatIndex.begin()); ValueSet::const_iterator aIter( aFormatIndexSet.begin());
for (sal_Int16 nNext = cssi::NumberFormatIndex::NUMBER_START; for (sal_Int16 nNext = cssi::NumberFormatIndex::NUMBER_START;
nNext < cssi::NumberFormatIndex::INDEX_TABLE_ENTRIES; ++nNext) nNext < cssi::NumberFormatIndex::INDEX_TABLE_ENTRIES; ++nNext)
{ {
sal_Int16 nHere = ::std::min( ((aIter != aFormatIndex.end() ? *aIter : sal_Int16 nHere = ::std::min( ((aIter != aFormatIndexSet.end() ? *aIter :
cssi::NumberFormatIndex::INDEX_TABLE_ENTRIES)), cssi::NumberFormatIndex::INDEX_TABLE_ENTRIES)),
cssi::NumberFormatIndex::INDEX_TABLE_ENTRIES); cssi::NumberFormatIndex::INDEX_TABLE_ENTRIES);
if (aIter != aFormatIndex.end()) ++aIter; if (aIter != aFormatIndexSet.end()) ++aIter;
for ( ; nNext < nHere; ++nNext) for ( ; nNext < nHere; ++nNext)
{ {
switch (nNext) switch (nNext)
@ -1415,6 +1451,8 @@ void LCMiscNode::generateCode (const OFileWriter &of) const
const LocaleNode * forbidNode = findNode("ForbiddenCharacters"); const LocaleNode * forbidNode = findNode("ForbiddenCharacters");
const LocaleNode * breakNode = findNode("BreakIteratorRules"); const LocaleNode * breakNode = findNode("BreakIteratorRules");
bool bEnglishLocale = (strncmp( of.getLocale(), "en_", 3) == 0);
sal_Int16 nbOfWords = 0; sal_Int16 nbOfWords = 0;
::rtl::OUString str; ::rtl::OUString str;
sal_Int16 i; sal_Int16 i;
@ -1433,6 +1471,14 @@ void LCMiscNode::generateCode (const OFileWriter &of) const
fprintf( stderr, "Error: No content for ReservedWords %s.\n", ReserveWord[i].name); fprintf( stderr, "Error: No content for ReservedWords %s.\n", ReserveWord[i].name);
} }
of.writeParameter("ReservedWord", str, nbOfWords); of.writeParameter("ReservedWord", str, nbOfWords);
// "true", ..., "below" trigger untranslated warning.
if (!bEnglishLocale && curNode && (0 <= i && i <= 7) &&
str.equalsIgnoreAsciiCaseAscii( ReserveWord[i].value))
{
fprintf( stderr,
"Warning: ReservedWord %s seems to be untranslated \"%s\".\n",
ReserveWord[i].name, ReserveWord[i].value);
}
} }
of.writeAsciiString("static const sal_Int16 nbOfReservedWords = "); of.writeAsciiString("static const sal_Int16 nbOfReservedWords = ");
of.writeInt(nbOfWords); of.writeInt(nbOfWords);

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: LocaleNode.hxx,v $ * $RCSfile: LocaleNode.hxx,v $
* $Revision: 1.14.22.1 $ * $Revision: 1.14.24.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -148,6 +148,8 @@ public:
OUString writeParameterCheckLen( const OFileWriter &of, const char* pNodeName, const char* pParameterName, sal_Int32 nMinLen, sal_Int32 nMaxLen ) const; OUString writeParameterCheckLen( const OFileWriter &of, const char* pNodeName, const char* pParameterName, sal_Int32 nMinLen, sal_Int32 nMaxLen ) const;
// ++nError with output to stderr // ++nError with output to stderr
void incError( const char* pStr ) const; void incError( const char* pStr ) const;
// ++nError with output to stderr
void incError( const ::rtl::OUString& rStr ) const;
// ++nError with output to stderr, pStr should contain "%d", otherwise appended // ++nError with output to stderr, pStr should contain "%d", otherwise appended
void incErrorInt( const char* pStr, int nVal ) const; void incErrorInt( const char* pStr, int nVal ) const;
// ++nError with output to stderr, pStr should contain "%s", otherwise appended // ++nError with output to stderr, pStr should contain "%s", otherwise appended

View File

@ -332,16 +332,16 @@
<ReservedWords> <ReservedWords>
<trueWord>vero</trueWord> <trueWord>vero</trueWord>
<falseWord>falso</falseWord> <falseWord>falso</falseWord>
<quarter1Word>1. quarto</quarter1Word> <quarter1Word>1o trimestre</quarter1Word>
<quarter2Word>2. quarto</quarter2Word> <quarter2Word>2o trimestre</quarter2Word>
<quarter3Word>3. quarto</quarter3Word> <quarter3Word>3o trimestre</quarter3Word>
<quarter4Word>4. quarto</quarter4Word> <quarter4Word>4o trimestre</quarter4Word>
<aboveWord>sopra</aboveWord> <aboveWord>sopra</aboveWord>
<belowWord>sotto</belowWord> <belowWord>sotto</belowWord>
<quarter1Abbreviation>Q1</quarter1Abbreviation> <quarter1Abbreviation>T1</quarter1Abbreviation>
<quarter2Abbreviation>Q2</quarter2Abbreviation> <quarter2Abbreviation>T2</quarter2Abbreviation>
<quarter3Abbreviation>Q3</quarter3Abbreviation> <quarter3Abbreviation>T3</quarter3Abbreviation>
<quarter4Abbreviation>Q4</quarter4Abbreviation> <quarter4Abbreviation>T4</quarter4Abbreviation>
</ReservedWords> </ReservedWords>
</LC_MISC> </LC_MISC>
<LC_NumberingLevel ref="en_US"/> <LC_NumberingLevel ref="en_US"/>

View File

@ -179,9 +179,18 @@
we received got that right, especially not in date formats! we received got that right, especially not in date formats!
For easier comparison between locales in future please sort the For easier comparison between locales in future please sort the
FormatElements by their formatindex="..." value. This isn't necessary FormatElements by their formatindex="..." value within a usage group.
to be technically correct and isn't done in many locales yet, but will This isn't necessary to be technically correct and isn't done in many
certainly help. locales yet, but will certainly help.
Of usage="FIXED_NUMBER":
formatindex="0" MUST be the format containing the 'General' keyword.
The keyword itself may be localized, it is good practice though to
stick with a wording known from another spreadsheet application for
better user experience. Like other format codes it may be prepended
with a [NatNum1] modifier if values are to be displayed using native
numbering if no specific format was applied. The format must have the
default="true" and type="medium" attributes.
Of usage="DATE": Of usage="DATE":
formatindex="21" is used to edit already existing date data. In order formatindex="21" is used to edit already existing date data. In order

View File

@ -41,6 +41,7 @@ getAllCalendars_lb_LU;
getAllCalendars_lt_LT; getAllCalendars_lt_LT;
getAllCalendars_lv_LV; getAllCalendars_lv_LV;
getAllCalendars_mk_MK; getAllCalendars_mk_MK;
getAllCalendars_mt_MT;
getAllCalendars_nb_NO; getAllCalendars_nb_NO;
getAllCalendars_nl_BE; getAllCalendars_nl_BE;
getAllCalendars_nl_NL; getAllCalendars_nl_NL;
@ -105,6 +106,7 @@ getAllCurrencies_lb_LU;
getAllCurrencies_lt_LT; getAllCurrencies_lt_LT;
getAllCurrencies_lv_LV; getAllCurrencies_lv_LV;
getAllCurrencies_mk_MK; getAllCurrencies_mk_MK;
getAllCurrencies_mt_MT;
getAllCurrencies_nb_NO; getAllCurrencies_nb_NO;
getAllCurrencies_nl_BE; getAllCurrencies_nl_BE;
getAllCurrencies_nl_NL; getAllCurrencies_nl_NL;
@ -169,6 +171,7 @@ getAllFormats0_lb_LU;
getAllFormats0_lt_LT; getAllFormats0_lt_LT;
getAllFormats0_lv_LV; getAllFormats0_lv_LV;
getAllFormats0_mk_MK; getAllFormats0_mk_MK;
getAllFormats0_mt_MT;
getAllFormats0_nb_NO; getAllFormats0_nb_NO;
getAllFormats0_nl_BE; getAllFormats0_nl_BE;
getAllFormats0_nl_NL; getAllFormats0_nl_NL;
@ -233,6 +236,7 @@ getBreakIteratorRules_lb_LU;
getBreakIteratorRules_lt_LT; getBreakIteratorRules_lt_LT;
getBreakIteratorRules_lv_LV; getBreakIteratorRules_lv_LV;
getBreakIteratorRules_mk_MK; getBreakIteratorRules_mk_MK;
getBreakIteratorRules_mt_MT;
getBreakIteratorRules_nb_NO; getBreakIteratorRules_nb_NO;
getBreakIteratorRules_nl_BE; getBreakIteratorRules_nl_BE;
getBreakIteratorRules_nl_NL; getBreakIteratorRules_nl_NL;
@ -297,6 +301,7 @@ getCollationOptions_lb_LU;
getCollationOptions_lt_LT; getCollationOptions_lt_LT;
getCollationOptions_lv_LV; getCollationOptions_lv_LV;
getCollationOptions_mk_MK; getCollationOptions_mk_MK;
getCollationOptions_mt_MT;
getCollationOptions_nb_NO; getCollationOptions_nb_NO;
getCollationOptions_nl_BE; getCollationOptions_nl_BE;
getCollationOptions_nl_NL; getCollationOptions_nl_NL;
@ -361,6 +366,7 @@ getCollatorImplementation_lb_LU;
getCollatorImplementation_lt_LT; getCollatorImplementation_lt_LT;
getCollatorImplementation_lv_LV; getCollatorImplementation_lv_LV;
getCollatorImplementation_mk_MK; getCollatorImplementation_mk_MK;
getCollatorImplementation_mt_MT;
getCollatorImplementation_nb_NO; getCollatorImplementation_nb_NO;
getCollatorImplementation_nl_BE; getCollatorImplementation_nl_BE;
getCollatorImplementation_nl_NL; getCollatorImplementation_nl_NL;
@ -425,6 +431,7 @@ getContinuousNumberingLevels_lb_LU;
getContinuousNumberingLevels_lt_LT; getContinuousNumberingLevels_lt_LT;
getContinuousNumberingLevels_lv_LV; getContinuousNumberingLevels_lv_LV;
getContinuousNumberingLevels_mk_MK; getContinuousNumberingLevels_mk_MK;
getContinuousNumberingLevels_mt_MT;
getContinuousNumberingLevels_nb_NO; getContinuousNumberingLevels_nb_NO;
getContinuousNumberingLevels_nl_BE; getContinuousNumberingLevels_nl_BE;
getContinuousNumberingLevels_nl_NL; getContinuousNumberingLevels_nl_NL;
@ -489,6 +496,7 @@ getFollowPageWords_lb_LU;
getFollowPageWords_lt_LT; getFollowPageWords_lt_LT;
getFollowPageWords_lv_LV; getFollowPageWords_lv_LV;
getFollowPageWords_mk_MK; getFollowPageWords_mk_MK;
getFollowPageWords_mt_MT;
getFollowPageWords_nb_NO; getFollowPageWords_nb_NO;
getFollowPageWords_nl_BE; getFollowPageWords_nl_BE;
getFollowPageWords_nl_NL; getFollowPageWords_nl_NL;
@ -553,6 +561,7 @@ getForbiddenCharacters_lb_LU;
getForbiddenCharacters_lt_LT; getForbiddenCharacters_lt_LT;
getForbiddenCharacters_lv_LV; getForbiddenCharacters_lv_LV;
getForbiddenCharacters_mk_MK; getForbiddenCharacters_mk_MK;
getForbiddenCharacters_mt_MT;
getForbiddenCharacters_nb_NO; getForbiddenCharacters_nb_NO;
getForbiddenCharacters_nl_BE; getForbiddenCharacters_nl_BE;
getForbiddenCharacters_nl_NL; getForbiddenCharacters_nl_NL;
@ -617,6 +626,7 @@ getIndexAlgorithm_lb_LU;
getIndexAlgorithm_lt_LT; getIndexAlgorithm_lt_LT;
getIndexAlgorithm_lv_LV; getIndexAlgorithm_lv_LV;
getIndexAlgorithm_mk_MK; getIndexAlgorithm_mk_MK;
getIndexAlgorithm_mt_MT;
getIndexAlgorithm_nb_NO; getIndexAlgorithm_nb_NO;
getIndexAlgorithm_nl_BE; getIndexAlgorithm_nl_BE;
getIndexAlgorithm_nl_NL; getIndexAlgorithm_nl_NL;
@ -681,6 +691,7 @@ getLCInfo_lb_LU;
getLCInfo_lt_LT; getLCInfo_lt_LT;
getLCInfo_lv_LV; getLCInfo_lv_LV;
getLCInfo_mk_MK; getLCInfo_mk_MK;
getLCInfo_mt_MT;
getLCInfo_nb_NO; getLCInfo_nb_NO;
getLCInfo_nl_BE; getLCInfo_nl_BE;
getLCInfo_nl_NL; getLCInfo_nl_NL;
@ -745,6 +756,7 @@ getLocaleItem_lb_LU;
getLocaleItem_lt_LT; getLocaleItem_lt_LT;
getLocaleItem_lv_LV; getLocaleItem_lv_LV;
getLocaleItem_mk_MK; getLocaleItem_mk_MK;
getLocaleItem_mt_MT;
getLocaleItem_nb_NO; getLocaleItem_nb_NO;
getLocaleItem_nl_BE; getLocaleItem_nl_BE;
getLocaleItem_nl_NL; getLocaleItem_nl_NL;
@ -809,6 +821,7 @@ getOutlineNumberingLevels_lb_LU;
getOutlineNumberingLevels_lt_LT; getOutlineNumberingLevels_lt_LT;
getOutlineNumberingLevels_lv_LV; getOutlineNumberingLevels_lv_LV;
getOutlineNumberingLevels_mk_MK; getOutlineNumberingLevels_mk_MK;
getOutlineNumberingLevels_mt_MT;
getOutlineNumberingLevels_nb_NO; getOutlineNumberingLevels_nb_NO;
getOutlineNumberingLevels_nl_BE; getOutlineNumberingLevels_nl_BE;
getOutlineNumberingLevels_nl_NL; getOutlineNumberingLevels_nl_NL;
@ -873,6 +886,7 @@ getReservedWords_lb_LU;
getReservedWords_lt_LT; getReservedWords_lt_LT;
getReservedWords_lv_LV; getReservedWords_lv_LV;
getReservedWords_mk_MK; getReservedWords_mk_MK;
getReservedWords_mt_MT;
getReservedWords_nb_NO; getReservedWords_nb_NO;
getReservedWords_nl_BE; getReservedWords_nl_BE;
getReservedWords_nl_NL; getReservedWords_nl_NL;
@ -937,6 +951,7 @@ getSearchOptions_lb_LU;
getSearchOptions_lt_LT; getSearchOptions_lt_LT;
getSearchOptions_lv_LV; getSearchOptions_lv_LV;
getSearchOptions_mk_MK; getSearchOptions_mk_MK;
getSearchOptions_mt_MT;
getSearchOptions_nb_NO; getSearchOptions_nb_NO;
getSearchOptions_nl_BE; getSearchOptions_nl_BE;
getSearchOptions_nl_NL; getSearchOptions_nl_NL;
@ -1001,6 +1016,7 @@ getTransliterations_lb_LU;
getTransliterations_lt_LT; getTransliterations_lt_LT;
getTransliterations_lv_LV; getTransliterations_lv_LV;
getTransliterations_mk_MK; getTransliterations_mk_MK;
getTransliterations_mt_MT;
getTransliterations_nb_NO; getTransliterations_nb_NO;
getTransliterations_nl_BE; getTransliterations_nl_BE;
getTransliterations_nl_NL; getTransliterations_nl_NL;
@ -1065,6 +1081,7 @@ getUnicodeScripts_lb_LU;
getUnicodeScripts_lt_LT; getUnicodeScripts_lt_LT;
getUnicodeScripts_lv_LV; getUnicodeScripts_lv_LV;
getUnicodeScripts_mk_MK; getUnicodeScripts_mk_MK;
getUnicodeScripts_mt_MT;
getUnicodeScripts_nb_NO; getUnicodeScripts_nb_NO;
getUnicodeScripts_nl_BE; getUnicodeScripts_nl_BE;
getUnicodeScripts_nl_NL; getUnicodeScripts_nl_NL;

View File

@ -40,6 +40,7 @@ getAllCalendars_ml_IN;
getAllCalendars_mn_MN; getAllCalendars_mn_MN;
getAllCalendars_mr_IN; getAllCalendars_mr_IN;
getAllCalendars_ms_MY; getAllCalendars_ms_MY;
getAllCalendars_my_MM;
getAllCalendars_ne_NP; getAllCalendars_ne_NP;
getAllCalendars_nr_ZA; getAllCalendars_nr_ZA;
getAllCalendars_nso_ZA; getAllCalendars_nso_ZA;
@ -47,6 +48,7 @@ getAllCalendars_or_IN;
getAllCalendars_pa_IN; getAllCalendars_pa_IN;
getAllCalendars_rw_RW; getAllCalendars_rw_RW;
getAllCalendars_sg_CF; getAllCalendars_sg_CF;
getAllCalendars_shs_CA;
getAllCalendars_so_SO; getAllCalendars_so_SO;
getAllCalendars_ss_ZA; getAllCalendars_ss_ZA;
getAllCalendars_st_ZA; getAllCalendars_st_ZA;
@ -58,6 +60,7 @@ getAllCalendars_th_TH;
getAllCalendars_ti_ER; getAllCalendars_ti_ER;
getAllCalendars_tk_TM; getAllCalendars_tk_TM;
getAllCalendars_tn_ZA; getAllCalendars_tn_ZA;
getAllCalendars_tpi_PG;
getAllCalendars_ts_ZA; getAllCalendars_ts_ZA;
getAllCalendars_uz_UZ; getAllCalendars_uz_UZ;
getAllCalendars_ve_ZA; getAllCalendars_ve_ZA;
@ -109,6 +112,7 @@ getAllCurrencies_ml_IN;
getAllCurrencies_mn_MN; getAllCurrencies_mn_MN;
getAllCurrencies_mr_IN; getAllCurrencies_mr_IN;
getAllCurrencies_ms_MY; getAllCurrencies_ms_MY;
getAllCurrencies_my_MM;
getAllCurrencies_ne_NP; getAllCurrencies_ne_NP;
getAllCurrencies_nr_ZA; getAllCurrencies_nr_ZA;
getAllCurrencies_nso_ZA; getAllCurrencies_nso_ZA;
@ -116,6 +120,7 @@ getAllCurrencies_or_IN;
getAllCurrencies_pa_IN; getAllCurrencies_pa_IN;
getAllCurrencies_rw_RW; getAllCurrencies_rw_RW;
getAllCurrencies_sg_CF; getAllCurrencies_sg_CF;
getAllCurrencies_shs_CA;
getAllCurrencies_so_SO; getAllCurrencies_so_SO;
getAllCurrencies_ss_ZA; getAllCurrencies_ss_ZA;
getAllCurrencies_st_ZA; getAllCurrencies_st_ZA;
@ -127,6 +132,7 @@ getAllCurrencies_th_TH;
getAllCurrencies_ti_ER; getAllCurrencies_ti_ER;
getAllCurrencies_tk_TM; getAllCurrencies_tk_TM;
getAllCurrencies_tn_ZA; getAllCurrencies_tn_ZA;
getAllCurrencies_tpi_PG;
getAllCurrencies_ts_ZA; getAllCurrencies_ts_ZA;
getAllCurrencies_uz_UZ; getAllCurrencies_uz_UZ;
getAllCurrencies_ve_ZA; getAllCurrencies_ve_ZA;
@ -178,6 +184,7 @@ getAllFormats0_ml_IN;
getAllFormats0_mn_MN; getAllFormats0_mn_MN;
getAllFormats0_mr_IN; getAllFormats0_mr_IN;
getAllFormats0_ms_MY; getAllFormats0_ms_MY;
getAllFormats0_my_MM;
getAllFormats0_ne_NP; getAllFormats0_ne_NP;
getAllFormats0_nr_ZA; getAllFormats0_nr_ZA;
getAllFormats0_nso_ZA; getAllFormats0_nso_ZA;
@ -185,6 +192,7 @@ getAllFormats0_or_IN;
getAllFormats0_pa_IN; getAllFormats0_pa_IN;
getAllFormats0_rw_RW; getAllFormats0_rw_RW;
getAllFormats0_sg_CF; getAllFormats0_sg_CF;
getAllFormats0_shs_CA;
getAllFormats0_so_SO; getAllFormats0_so_SO;
getAllFormats0_ss_ZA; getAllFormats0_ss_ZA;
getAllFormats0_st_ZA; getAllFormats0_st_ZA;
@ -196,6 +204,7 @@ getAllFormats0_th_TH;
getAllFormats0_ti_ER; getAllFormats0_ti_ER;
getAllFormats0_tk_TM; getAllFormats0_tk_TM;
getAllFormats0_tn_ZA; getAllFormats0_tn_ZA;
getAllFormats0_tpi_PG;
getAllFormats0_ts_ZA; getAllFormats0_ts_ZA;
getAllFormats0_uz_UZ; getAllFormats0_uz_UZ;
getAllFormats0_ve_ZA; getAllFormats0_ve_ZA;
@ -247,6 +256,7 @@ getBreakIteratorRules_ml_IN;
getBreakIteratorRules_mn_MN; getBreakIteratorRules_mn_MN;
getBreakIteratorRules_mr_IN; getBreakIteratorRules_mr_IN;
getBreakIteratorRules_ms_MY; getBreakIteratorRules_ms_MY;
getBreakIteratorRules_my_MM;
getBreakIteratorRules_ne_NP; getBreakIteratorRules_ne_NP;
getBreakIteratorRules_nr_ZA; getBreakIteratorRules_nr_ZA;
getBreakIteratorRules_nso_ZA; getBreakIteratorRules_nso_ZA;
@ -254,6 +264,7 @@ getBreakIteratorRules_or_IN;
getBreakIteratorRules_pa_IN; getBreakIteratorRules_pa_IN;
getBreakIteratorRules_rw_RW; getBreakIteratorRules_rw_RW;
getBreakIteratorRules_sg_CF; getBreakIteratorRules_sg_CF;
getBreakIteratorRules_shs_CA;
getBreakIteratorRules_so_SO; getBreakIteratorRules_so_SO;
getBreakIteratorRules_ss_ZA; getBreakIteratorRules_ss_ZA;
getBreakIteratorRules_st_ZA; getBreakIteratorRules_st_ZA;
@ -265,6 +276,7 @@ getBreakIteratorRules_th_TH;
getBreakIteratorRules_ti_ER; getBreakIteratorRules_ti_ER;
getBreakIteratorRules_tk_TM; getBreakIteratorRules_tk_TM;
getBreakIteratorRules_tn_ZA; getBreakIteratorRules_tn_ZA;
getBreakIteratorRules_tpi_PG;
getBreakIteratorRules_ts_ZA; getBreakIteratorRules_ts_ZA;
getBreakIteratorRules_uz_UZ; getBreakIteratorRules_uz_UZ;
getBreakIteratorRules_ve_ZA; getBreakIteratorRules_ve_ZA;
@ -316,6 +328,7 @@ getCollationOptions_ml_IN;
getCollationOptions_mn_MN; getCollationOptions_mn_MN;
getCollationOptions_mr_IN; getCollationOptions_mr_IN;
getCollationOptions_ms_MY; getCollationOptions_ms_MY;
getCollationOptions_my_MM;
getCollationOptions_ne_NP; getCollationOptions_ne_NP;
getCollationOptions_nr_ZA; getCollationOptions_nr_ZA;
getCollationOptions_nso_ZA; getCollationOptions_nso_ZA;
@ -323,6 +336,7 @@ getCollationOptions_or_IN;
getCollationOptions_pa_IN; getCollationOptions_pa_IN;
getCollationOptions_rw_RW; getCollationOptions_rw_RW;
getCollationOptions_sg_CF; getCollationOptions_sg_CF;
getCollationOptions_shs_CA;
getCollationOptions_so_SO; getCollationOptions_so_SO;
getCollationOptions_ss_ZA; getCollationOptions_ss_ZA;
getCollationOptions_st_ZA; getCollationOptions_st_ZA;
@ -334,6 +348,7 @@ getCollationOptions_th_TH;
getCollationOptions_ti_ER; getCollationOptions_ti_ER;
getCollationOptions_tk_TM; getCollationOptions_tk_TM;
getCollationOptions_tn_ZA; getCollationOptions_tn_ZA;
getCollationOptions_tpi_PG;
getCollationOptions_ts_ZA; getCollationOptions_ts_ZA;
getCollationOptions_uz_UZ; getCollationOptions_uz_UZ;
getCollationOptions_ve_ZA; getCollationOptions_ve_ZA;
@ -385,6 +400,7 @@ getCollatorImplementation_ml_IN;
getCollatorImplementation_mn_MN; getCollatorImplementation_mn_MN;
getCollatorImplementation_mr_IN; getCollatorImplementation_mr_IN;
getCollatorImplementation_ms_MY; getCollatorImplementation_ms_MY;
getCollatorImplementation_my_MM;
getCollatorImplementation_ne_NP; getCollatorImplementation_ne_NP;
getCollatorImplementation_nr_ZA; getCollatorImplementation_nr_ZA;
getCollatorImplementation_nso_ZA; getCollatorImplementation_nso_ZA;
@ -392,6 +408,7 @@ getCollatorImplementation_or_IN;
getCollatorImplementation_pa_IN; getCollatorImplementation_pa_IN;
getCollatorImplementation_rw_RW; getCollatorImplementation_rw_RW;
getCollatorImplementation_sg_CF; getCollatorImplementation_sg_CF;
getCollatorImplementation_shs_CA;
getCollatorImplementation_so_SO; getCollatorImplementation_so_SO;
getCollatorImplementation_ss_ZA; getCollatorImplementation_ss_ZA;
getCollatorImplementation_st_ZA; getCollatorImplementation_st_ZA;
@ -403,6 +420,7 @@ getCollatorImplementation_th_TH;
getCollatorImplementation_ti_ER; getCollatorImplementation_ti_ER;
getCollatorImplementation_tk_TM; getCollatorImplementation_tk_TM;
getCollatorImplementation_tn_ZA; getCollatorImplementation_tn_ZA;
getCollatorImplementation_tpi_PG;
getCollatorImplementation_ts_ZA; getCollatorImplementation_ts_ZA;
getCollatorImplementation_uz_UZ; getCollatorImplementation_uz_UZ;
getCollatorImplementation_ve_ZA; getCollatorImplementation_ve_ZA;
@ -454,6 +472,7 @@ getContinuousNumberingLevels_ml_IN;
getContinuousNumberingLevels_mn_MN; getContinuousNumberingLevels_mn_MN;
getContinuousNumberingLevels_mr_IN; getContinuousNumberingLevels_mr_IN;
getContinuousNumberingLevels_ms_MY; getContinuousNumberingLevels_ms_MY;
getContinuousNumberingLevels_my_MM;
getContinuousNumberingLevels_ne_NP; getContinuousNumberingLevels_ne_NP;
getContinuousNumberingLevels_nr_ZA; getContinuousNumberingLevels_nr_ZA;
getContinuousNumberingLevels_nso_ZA; getContinuousNumberingLevels_nso_ZA;
@ -461,6 +480,7 @@ getContinuousNumberingLevels_or_IN;
getContinuousNumberingLevels_pa_IN; getContinuousNumberingLevels_pa_IN;
getContinuousNumberingLevels_rw_RW; getContinuousNumberingLevels_rw_RW;
getContinuousNumberingLevels_sg_CF; getContinuousNumberingLevels_sg_CF;
getContinuousNumberingLevels_shs_CA;
getContinuousNumberingLevels_so_SO; getContinuousNumberingLevels_so_SO;
getContinuousNumberingLevels_ss_ZA; getContinuousNumberingLevels_ss_ZA;
getContinuousNumberingLevels_st_ZA; getContinuousNumberingLevels_st_ZA;
@ -472,6 +492,7 @@ getContinuousNumberingLevels_th_TH;
getContinuousNumberingLevels_ti_ER; getContinuousNumberingLevels_ti_ER;
getContinuousNumberingLevels_tk_TM; getContinuousNumberingLevels_tk_TM;
getContinuousNumberingLevels_tn_ZA; getContinuousNumberingLevels_tn_ZA;
getContinuousNumberingLevels_tpi_PG;
getContinuousNumberingLevels_ts_ZA; getContinuousNumberingLevels_ts_ZA;
getContinuousNumberingLevels_uz_UZ; getContinuousNumberingLevels_uz_UZ;
getContinuousNumberingLevels_ve_ZA; getContinuousNumberingLevels_ve_ZA;
@ -523,6 +544,7 @@ getFollowPageWords_ml_IN;
getFollowPageWords_mn_MN; getFollowPageWords_mn_MN;
getFollowPageWords_mr_IN; getFollowPageWords_mr_IN;
getFollowPageWords_ms_MY; getFollowPageWords_ms_MY;
getFollowPageWords_my_MM;
getFollowPageWords_ne_NP; getFollowPageWords_ne_NP;
getFollowPageWords_nr_ZA; getFollowPageWords_nr_ZA;
getFollowPageWords_nso_ZA; getFollowPageWords_nso_ZA;
@ -530,6 +552,7 @@ getFollowPageWords_or_IN;
getFollowPageWords_pa_IN; getFollowPageWords_pa_IN;
getFollowPageWords_rw_RW; getFollowPageWords_rw_RW;
getFollowPageWords_sg_CF; getFollowPageWords_sg_CF;
getFollowPageWords_shs_CA;
getFollowPageWords_so_SO; getFollowPageWords_so_SO;
getFollowPageWords_ss_ZA; getFollowPageWords_ss_ZA;
getFollowPageWords_st_ZA; getFollowPageWords_st_ZA;
@ -541,6 +564,7 @@ getFollowPageWords_th_TH;
getFollowPageWords_ti_ER; getFollowPageWords_ti_ER;
getFollowPageWords_tk_TM; getFollowPageWords_tk_TM;
getFollowPageWords_tn_ZA; getFollowPageWords_tn_ZA;
getFollowPageWords_tpi_PG;
getFollowPageWords_ts_ZA; getFollowPageWords_ts_ZA;
getFollowPageWords_uz_UZ; getFollowPageWords_uz_UZ;
getFollowPageWords_ve_ZA; getFollowPageWords_ve_ZA;
@ -592,6 +616,7 @@ getForbiddenCharacters_ml_IN;
getForbiddenCharacters_mn_MN; getForbiddenCharacters_mn_MN;
getForbiddenCharacters_mr_IN; getForbiddenCharacters_mr_IN;
getForbiddenCharacters_ms_MY; getForbiddenCharacters_ms_MY;
getForbiddenCharacters_my_MM;
getForbiddenCharacters_ne_NP; getForbiddenCharacters_ne_NP;
getForbiddenCharacters_nr_ZA; getForbiddenCharacters_nr_ZA;
getForbiddenCharacters_nso_ZA; getForbiddenCharacters_nso_ZA;
@ -599,6 +624,7 @@ getForbiddenCharacters_or_IN;
getForbiddenCharacters_pa_IN; getForbiddenCharacters_pa_IN;
getForbiddenCharacters_rw_RW; getForbiddenCharacters_rw_RW;
getForbiddenCharacters_sg_CF; getForbiddenCharacters_sg_CF;
getForbiddenCharacters_shs_CA;
getForbiddenCharacters_so_SO; getForbiddenCharacters_so_SO;
getForbiddenCharacters_ss_ZA; getForbiddenCharacters_ss_ZA;
getForbiddenCharacters_st_ZA; getForbiddenCharacters_st_ZA;
@ -610,6 +636,7 @@ getForbiddenCharacters_th_TH;
getForbiddenCharacters_ti_ER; getForbiddenCharacters_ti_ER;
getForbiddenCharacters_tk_TM; getForbiddenCharacters_tk_TM;
getForbiddenCharacters_tn_ZA; getForbiddenCharacters_tn_ZA;
getForbiddenCharacters_tpi_PG;
getForbiddenCharacters_ts_ZA; getForbiddenCharacters_ts_ZA;
getForbiddenCharacters_uz_UZ; getForbiddenCharacters_uz_UZ;
getForbiddenCharacters_ve_ZA; getForbiddenCharacters_ve_ZA;
@ -661,6 +688,7 @@ getIndexAlgorithm_ml_IN;
getIndexAlgorithm_mn_MN; getIndexAlgorithm_mn_MN;
getIndexAlgorithm_mr_IN; getIndexAlgorithm_mr_IN;
getIndexAlgorithm_ms_MY; getIndexAlgorithm_ms_MY;
getIndexAlgorithm_my_MM;
getIndexAlgorithm_ne_NP; getIndexAlgorithm_ne_NP;
getIndexAlgorithm_nr_ZA; getIndexAlgorithm_nr_ZA;
getIndexAlgorithm_nso_ZA; getIndexAlgorithm_nso_ZA;
@ -668,6 +696,7 @@ getIndexAlgorithm_or_IN;
getIndexAlgorithm_pa_IN; getIndexAlgorithm_pa_IN;
getIndexAlgorithm_rw_RW; getIndexAlgorithm_rw_RW;
getIndexAlgorithm_sg_CF; getIndexAlgorithm_sg_CF;
getIndexAlgorithm_shs_CA;
getIndexAlgorithm_so_SO; getIndexAlgorithm_so_SO;
getIndexAlgorithm_ss_ZA; getIndexAlgorithm_ss_ZA;
getIndexAlgorithm_st_ZA; getIndexAlgorithm_st_ZA;
@ -679,6 +708,7 @@ getIndexAlgorithm_th_TH;
getIndexAlgorithm_ti_ER; getIndexAlgorithm_ti_ER;
getIndexAlgorithm_tk_TM; getIndexAlgorithm_tk_TM;
getIndexAlgorithm_tn_ZA; getIndexAlgorithm_tn_ZA;
getIndexAlgorithm_tpi_PG;
getIndexAlgorithm_ts_ZA; getIndexAlgorithm_ts_ZA;
getIndexAlgorithm_uz_UZ; getIndexAlgorithm_uz_UZ;
getIndexAlgorithm_ve_ZA; getIndexAlgorithm_ve_ZA;
@ -730,6 +760,7 @@ getLCInfo_ml_IN;
getLCInfo_mn_MN; getLCInfo_mn_MN;
getLCInfo_mr_IN; getLCInfo_mr_IN;
getLCInfo_ms_MY; getLCInfo_ms_MY;
getLCInfo_my_MM;
getLCInfo_ne_NP; getLCInfo_ne_NP;
getLCInfo_nr_ZA; getLCInfo_nr_ZA;
getLCInfo_nso_ZA; getLCInfo_nso_ZA;
@ -737,6 +768,7 @@ getLCInfo_or_IN;
getLCInfo_pa_IN; getLCInfo_pa_IN;
getLCInfo_rw_RW; getLCInfo_rw_RW;
getLCInfo_sg_CF; getLCInfo_sg_CF;
getLCInfo_shs_CA;
getLCInfo_so_SO; getLCInfo_so_SO;
getLCInfo_ss_ZA; getLCInfo_ss_ZA;
getLCInfo_st_ZA; getLCInfo_st_ZA;
@ -748,6 +780,7 @@ getLCInfo_th_TH;
getLCInfo_ti_ER; getLCInfo_ti_ER;
getLCInfo_tk_TM; getLCInfo_tk_TM;
getLCInfo_tn_ZA; getLCInfo_tn_ZA;
getLCInfo_tpi_PG;
getLCInfo_ts_ZA; getLCInfo_ts_ZA;
getLCInfo_uz_UZ; getLCInfo_uz_UZ;
getLCInfo_ve_ZA; getLCInfo_ve_ZA;
@ -799,6 +832,7 @@ getLocaleItem_ml_IN;
getLocaleItem_mn_MN; getLocaleItem_mn_MN;
getLocaleItem_mr_IN; getLocaleItem_mr_IN;
getLocaleItem_ms_MY; getLocaleItem_ms_MY;
getLocaleItem_my_MM;
getLocaleItem_ne_NP; getLocaleItem_ne_NP;
getLocaleItem_nr_ZA; getLocaleItem_nr_ZA;
getLocaleItem_nso_ZA; getLocaleItem_nso_ZA;
@ -806,6 +840,7 @@ getLocaleItem_or_IN;
getLocaleItem_pa_IN; getLocaleItem_pa_IN;
getLocaleItem_rw_RW; getLocaleItem_rw_RW;
getLocaleItem_sg_CF; getLocaleItem_sg_CF;
getLocaleItem_shs_CA;
getLocaleItem_so_SO; getLocaleItem_so_SO;
getLocaleItem_ss_ZA; getLocaleItem_ss_ZA;
getLocaleItem_st_ZA; getLocaleItem_st_ZA;
@ -817,6 +852,7 @@ getLocaleItem_th_TH;
getLocaleItem_ti_ER; getLocaleItem_ti_ER;
getLocaleItem_tk_TM; getLocaleItem_tk_TM;
getLocaleItem_tn_ZA; getLocaleItem_tn_ZA;
getLocaleItem_tpi_PG;
getLocaleItem_ts_ZA; getLocaleItem_ts_ZA;
getLocaleItem_uz_UZ; getLocaleItem_uz_UZ;
getLocaleItem_ve_ZA; getLocaleItem_ve_ZA;
@ -868,6 +904,7 @@ getOutlineNumberingLevels_ml_IN;
getOutlineNumberingLevels_mn_MN; getOutlineNumberingLevels_mn_MN;
getOutlineNumberingLevels_mr_IN; getOutlineNumberingLevels_mr_IN;
getOutlineNumberingLevels_ms_MY; getOutlineNumberingLevels_ms_MY;
getOutlineNumberingLevels_my_MM;
getOutlineNumberingLevels_ne_NP; getOutlineNumberingLevels_ne_NP;
getOutlineNumberingLevels_nr_ZA; getOutlineNumberingLevels_nr_ZA;
getOutlineNumberingLevels_nso_ZA; getOutlineNumberingLevels_nso_ZA;
@ -875,6 +912,7 @@ getOutlineNumberingLevels_or_IN;
getOutlineNumberingLevels_pa_IN; getOutlineNumberingLevels_pa_IN;
getOutlineNumberingLevels_rw_RW; getOutlineNumberingLevels_rw_RW;
getOutlineNumberingLevels_sg_CF; getOutlineNumberingLevels_sg_CF;
getOutlineNumberingLevels_shs_CA;
getOutlineNumberingLevels_so_SO; getOutlineNumberingLevels_so_SO;
getOutlineNumberingLevels_ss_ZA; getOutlineNumberingLevels_ss_ZA;
getOutlineNumberingLevels_st_ZA; getOutlineNumberingLevels_st_ZA;
@ -886,6 +924,7 @@ getOutlineNumberingLevels_th_TH;
getOutlineNumberingLevels_ti_ER; getOutlineNumberingLevels_ti_ER;
getOutlineNumberingLevels_tk_TM; getOutlineNumberingLevels_tk_TM;
getOutlineNumberingLevels_tn_ZA; getOutlineNumberingLevels_tn_ZA;
getOutlineNumberingLevels_tpi_PG;
getOutlineNumberingLevels_ts_ZA; getOutlineNumberingLevels_ts_ZA;
getOutlineNumberingLevels_uz_UZ; getOutlineNumberingLevels_uz_UZ;
getOutlineNumberingLevels_ve_ZA; getOutlineNumberingLevels_ve_ZA;
@ -937,6 +976,7 @@ getReservedWords_ml_IN;
getReservedWords_mn_MN; getReservedWords_mn_MN;
getReservedWords_mr_IN; getReservedWords_mr_IN;
getReservedWords_ms_MY; getReservedWords_ms_MY;
getReservedWords_my_MM;
getReservedWords_ne_NP; getReservedWords_ne_NP;
getReservedWords_nr_ZA; getReservedWords_nr_ZA;
getReservedWords_nso_ZA; getReservedWords_nso_ZA;
@ -944,6 +984,7 @@ getReservedWords_or_IN;
getReservedWords_pa_IN; getReservedWords_pa_IN;
getReservedWords_rw_RW; getReservedWords_rw_RW;
getReservedWords_sg_CF; getReservedWords_sg_CF;
getReservedWords_shs_CA;
getReservedWords_so_SO; getReservedWords_so_SO;
getReservedWords_ss_ZA; getReservedWords_ss_ZA;
getReservedWords_st_ZA; getReservedWords_st_ZA;
@ -955,6 +996,7 @@ getReservedWords_th_TH;
getReservedWords_ti_ER; getReservedWords_ti_ER;
getReservedWords_tk_TM; getReservedWords_tk_TM;
getReservedWords_tn_ZA; getReservedWords_tn_ZA;
getReservedWords_tpi_PG;
getReservedWords_ts_ZA; getReservedWords_ts_ZA;
getReservedWords_uz_UZ; getReservedWords_uz_UZ;
getReservedWords_ve_ZA; getReservedWords_ve_ZA;
@ -1006,6 +1048,7 @@ getSearchOptions_ml_IN;
getSearchOptions_mn_MN; getSearchOptions_mn_MN;
getSearchOptions_mr_IN; getSearchOptions_mr_IN;
getSearchOptions_ms_MY; getSearchOptions_ms_MY;
getSearchOptions_my_MM;
getSearchOptions_ne_NP; getSearchOptions_ne_NP;
getSearchOptions_nr_ZA; getSearchOptions_nr_ZA;
getSearchOptions_nso_ZA; getSearchOptions_nso_ZA;
@ -1013,6 +1056,7 @@ getSearchOptions_or_IN;
getSearchOptions_pa_IN; getSearchOptions_pa_IN;
getSearchOptions_rw_RW; getSearchOptions_rw_RW;
getSearchOptions_sg_CF; getSearchOptions_sg_CF;
getSearchOptions_shs_CA;
getSearchOptions_so_SO; getSearchOptions_so_SO;
getSearchOptions_ss_ZA; getSearchOptions_ss_ZA;
getSearchOptions_st_ZA; getSearchOptions_st_ZA;
@ -1024,6 +1068,7 @@ getSearchOptions_th_TH;
getSearchOptions_ti_ER; getSearchOptions_ti_ER;
getSearchOptions_tk_TM; getSearchOptions_tk_TM;
getSearchOptions_tn_ZA; getSearchOptions_tn_ZA;
getSearchOptions_tpi_PG;
getSearchOptions_ts_ZA; getSearchOptions_ts_ZA;
getSearchOptions_uz_UZ; getSearchOptions_uz_UZ;
getSearchOptions_ve_ZA; getSearchOptions_ve_ZA;
@ -1075,6 +1120,7 @@ getTransliterations_ml_IN;
getTransliterations_mn_MN; getTransliterations_mn_MN;
getTransliterations_mr_IN; getTransliterations_mr_IN;
getTransliterations_ms_MY; getTransliterations_ms_MY;
getTransliterations_my_MM;
getTransliterations_ne_NP; getTransliterations_ne_NP;
getTransliterations_nr_ZA; getTransliterations_nr_ZA;
getTransliterations_nso_ZA; getTransliterations_nso_ZA;
@ -1082,6 +1128,7 @@ getTransliterations_or_IN;
getTransliterations_pa_IN; getTransliterations_pa_IN;
getTransliterations_rw_RW; getTransliterations_rw_RW;
getTransliterations_sg_CF; getTransliterations_sg_CF;
getTransliterations_shs_CA;
getTransliterations_so_SO; getTransliterations_so_SO;
getTransliterations_ss_ZA; getTransliterations_ss_ZA;
getTransliterations_st_ZA; getTransliterations_st_ZA;
@ -1093,6 +1140,7 @@ getTransliterations_th_TH;
getTransliterations_ti_ER; getTransliterations_ti_ER;
getTransliterations_tk_TM; getTransliterations_tk_TM;
getTransliterations_tn_ZA; getTransliterations_tn_ZA;
getTransliterations_tpi_PG;
getTransliterations_ts_ZA; getTransliterations_ts_ZA;
getTransliterations_uz_UZ; getTransliterations_uz_UZ;
getTransliterations_ve_ZA; getTransliterations_ve_ZA;
@ -1144,6 +1192,7 @@ getUnicodeScripts_ml_IN;
getUnicodeScripts_mn_MN; getUnicodeScripts_mn_MN;
getUnicodeScripts_mr_IN; getUnicodeScripts_mr_IN;
getUnicodeScripts_ms_MY; getUnicodeScripts_ms_MY;
getUnicodeScripts_my_MM;
getUnicodeScripts_ne_NP; getUnicodeScripts_ne_NP;
getUnicodeScripts_nr_ZA; getUnicodeScripts_nr_ZA;
getUnicodeScripts_nso_ZA; getUnicodeScripts_nso_ZA;
@ -1151,6 +1200,7 @@ getUnicodeScripts_or_IN;
getUnicodeScripts_pa_IN; getUnicodeScripts_pa_IN;
getUnicodeScripts_rw_RW; getUnicodeScripts_rw_RW;
getUnicodeScripts_sg_CF; getUnicodeScripts_sg_CF;
getUnicodeScripts_shs_CA;
getUnicodeScripts_so_SO; getUnicodeScripts_so_SO;
getUnicodeScripts_ss_ZA; getUnicodeScripts_ss_ZA;
getUnicodeScripts_st_ZA; getUnicodeScripts_st_ZA;
@ -1162,6 +1212,7 @@ getUnicodeScripts_th_TH;
getUnicodeScripts_ti_ER; getUnicodeScripts_ti_ER;
getUnicodeScripts_tk_TM; getUnicodeScripts_tk_TM;
getUnicodeScripts_tn_ZA; getUnicodeScripts_tn_ZA;
getUnicodeScripts_tpi_PG;
getUnicodeScripts_ts_ZA; getUnicodeScripts_ts_ZA;
getUnicodeScripts_uz_UZ; getUnicodeScripts_uz_UZ;
getUnicodeScripts_ve_ZA; getUnicodeScripts_ve_ZA;

View File

@ -8,7 +8,7 @@
# #
# $RCSfile: makefile.mk,v $ # $RCSfile: makefile.mk,v $
# #
# $Revision: 1.47 $ # $Revision: 1.47.24.4 $
# #
# This file is part of OpenOffice.org. # This file is part of OpenOffice.org.
# #
@ -182,6 +182,8 @@ MY_MISC_CXXFILES = \
$(MISC)$/localedata_mn_MN.cxx \ $(MISC)$/localedata_mn_MN.cxx \
$(MISC)$/localedata_mr_IN.cxx \ $(MISC)$/localedata_mr_IN.cxx \
$(MISC)$/localedata_ms_MY.cxx \ $(MISC)$/localedata_ms_MY.cxx \
$(MISC)$/localedata_mt_MT.cxx \
$(MISC)$/localedata_my_MM.cxx \
$(MISC)$/localedata_nb_NO.cxx \ $(MISC)$/localedata_nb_NO.cxx \
$(MISC)$/localedata_ne_NP.cxx \ $(MISC)$/localedata_ne_NP.cxx \
$(MISC)$/localedata_nl_BE.cxx \ $(MISC)$/localedata_nl_BE.cxx \
@ -203,6 +205,7 @@ MY_MISC_CXXFILES = \
$(MISC)$/localedata_sh_ME.cxx \ $(MISC)$/localedata_sh_ME.cxx \
$(MISC)$/localedata_sh_RS.cxx \ $(MISC)$/localedata_sh_RS.cxx \
$(MISC)$/localedata_sh_YU.cxx \ $(MISC)$/localedata_sh_YU.cxx \
$(MISC)$/localedata_shs_CA.cxx \
$(MISC)$/localedata_sk_SK.cxx \ $(MISC)$/localedata_sk_SK.cxx \
$(MISC)$/localedata_sl_SI.cxx \ $(MISC)$/localedata_sl_SI.cxx \
$(MISC)$/localedata_so_SO.cxx \ $(MISC)$/localedata_so_SO.cxx \
@ -221,6 +224,7 @@ MY_MISC_CXXFILES = \
$(MISC)$/localedata_ti_ER.cxx \ $(MISC)$/localedata_ti_ER.cxx \
$(MISC)$/localedata_tk_TM.cxx \ $(MISC)$/localedata_tk_TM.cxx \
$(MISC)$/localedata_tn_ZA.cxx \ $(MISC)$/localedata_tn_ZA.cxx \
$(MISC)$/localedata_tpi_PG.cxx \
$(MISC)$/localedata_tr_TR.cxx \ $(MISC)$/localedata_tr_TR.cxx \
$(MISC)$/localedata_ts_ZA.cxx \ $(MISC)$/localedata_ts_ZA.cxx \
$(MISC)$/localedata_uk_UA.cxx \ $(MISC)$/localedata_uk_UA.cxx \
@ -359,6 +363,7 @@ SHL3OBJS= \
$(SLO)$/localedata_lt_LT.obj \ $(SLO)$/localedata_lt_LT.obj \
$(SLO)$/localedata_lv_LV.obj \ $(SLO)$/localedata_lv_LV.obj \
$(SLO)$/localedata_mk_MK.obj \ $(SLO)$/localedata_mk_MK.obj \
$(SLO)$/localedata_mt_MT.obj \
$(SLO)$/localedata_nb_NO.obj \ $(SLO)$/localedata_nb_NO.obj \
$(SLO)$/localedata_nl_BE.obj \ $(SLO)$/localedata_nl_BE.obj \
$(SLO)$/localedata_nl_NL.obj \ $(SLO)$/localedata_nl_NL.obj \
@ -441,6 +446,7 @@ SHL4OBJS= \
$(SLO)$/localedata_mn_MN.obj \ $(SLO)$/localedata_mn_MN.obj \
$(SLO)$/localedata_mr_IN.obj \ $(SLO)$/localedata_mr_IN.obj \
$(SLO)$/localedata_ms_MY.obj \ $(SLO)$/localedata_ms_MY.obj \
$(SLO)$/localedata_my_MM.obj \
$(SLO)$/localedata_ne_NP.obj \ $(SLO)$/localedata_ne_NP.obj \
$(SLO)$/localedata_nr_ZA.obj \ $(SLO)$/localedata_nr_ZA.obj \
$(SLO)$/localedata_nso_ZA.obj \ $(SLO)$/localedata_nso_ZA.obj \
@ -448,6 +454,7 @@ SHL4OBJS= \
$(SLO)$/localedata_pa_IN.obj \ $(SLO)$/localedata_pa_IN.obj \
$(SLO)$/localedata_rw_RW.obj \ $(SLO)$/localedata_rw_RW.obj \
$(SLO)$/localedata_sg_CF.obj \ $(SLO)$/localedata_sg_CF.obj \
$(SLO)$/localedata_shs_CA.obj \
$(SLO)$/localedata_so_SO.obj \ $(SLO)$/localedata_so_SO.obj \
$(SLO)$/localedata_ss_ZA.obj \ $(SLO)$/localedata_ss_ZA.obj \
$(SLO)$/localedata_st_ZA.obj \ $(SLO)$/localedata_st_ZA.obj \
@ -459,6 +466,7 @@ SHL4OBJS= \
$(SLO)$/localedata_ti_ER.obj \ $(SLO)$/localedata_ti_ER.obj \
$(SLO)$/localedata_tk_TM.obj \ $(SLO)$/localedata_tk_TM.obj \
$(SLO)$/localedata_tn_ZA.obj \ $(SLO)$/localedata_tn_ZA.obj \
$(SLO)$/localedata_tpi_PG.obj \
$(SLO)$/localedata_ts_ZA.obj \ $(SLO)$/localedata_ts_ZA.obj \
$(SLO)$/localedata_uz_UZ.obj \ $(SLO)$/localedata_uz_UZ.obj \
$(SLO)$/localedata_ve_ZA.obj \ $(SLO)$/localedata_ve_ZA.obj \

View File

@ -0,0 +1,359 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Locale SYSTEM 'locale.dtd'>
<Locale versionDTD="2.0.3" allowUpdateFromCLDR="no" version="1.0">
<LC_INFO>
<Language>
<LangID>mt</LangID>
<DefaultName>Maltese</DefaultName>
</Language>
<Country>
<CountryID>MT</CountryID>
<DefaultName>Malta</DefaultName>
</Country>
</LC_INFO>
<LC_CTYPE unoid="generic">
<Separators>
<DateSeparator>/</DateSeparator>
<ThousandSeparator>,</ThousandSeparator>
<DecimalSeparator>.</DecimalSeparator>
<TimeSeparator>:</TimeSeparator>
<Time100SecSeparator>.</Time100SecSeparator>
<ListSeparator>;</ListSeparator>
<LongDateDayOfWeekSeparator>, </LongDateDayOfWeekSeparator>
<LongDateDaySeparator>, </LongDateDaySeparator>
<LongDateMonthSeparator> </LongDateMonthSeparator>
<LongDateYearSeparator> </LongDateYearSeparator>
</Separators>
<Markers>
<QuotationStart></QuotationStart>
<QuotationEnd></QuotationEnd>
<DoubleQuotationStart></DoubleQuotationStart>
<DoubleQuotationEnd></DoubleQuotationEnd>
</Markers>
<TimeAM>QN</TimeAM>
<TimePM>WN</TimePM>
<MeasurementSystem>metric</MeasurementSystem>
</LC_CTYPE>
<LC_FORMAT replaceFrom="[CURRENCY]" replaceTo="[$€-043A]">
<FormatElement msgid="FixedFormatskey1" default="true" type="medium" usage="FIXED_NUMBER" formatindex="0">
<FormatCode>General</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey2" default="true" type="short" usage="FIXED_NUMBER" formatindex="1">
<FormatCode>0</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey3" default="false" type="medium" usage="FIXED_NUMBER" formatindex="2">
<FormatCode>0.00</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey4" default="false" type="short" usage="FIXED_NUMBER" formatindex="3">
<FormatCode>#,##0</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey5" default="false" type="medium" usage="FIXED_NUMBER" formatindex="4">
<FormatCode>#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey6" default="false" type="medium" usage="FIXED_NUMBER" formatindex="5">
<FormatCode>#,###.00</FormatCode>
</FormatElement>
<FormatElement msgid="ScientificFormatskey1" default="true" type="medium" usage="SCIENTIFIC_NUMBER" formatindex="6">
<FormatCode>0.00E+00</FormatCode>
</FormatElement>
<FormatElement msgid="ScientificFormatskey2" default="false" type="medium" usage="SCIENTIFIC_NUMBER" formatindex="7">
<FormatCode>0.00E+000</FormatCode>
</FormatElement>
<FormatElement msgid="PercentFormatskey1" default="true" type="short" usage="PERCENT_NUMBER" formatindex="8">
<FormatCode>0%</FormatCode>
</FormatElement>
<FormatElement msgid="PercentFormatskey2" default="true" type="long" usage="PERCENT_NUMBER" formatindex="9">
<FormatCode>0.00%</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey1" default="true" type="short" usage="CURRENCY" formatindex="12">
<FormatCode>[CURRENCY]#,##0;-[CURRENCY]#,##0</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey2" default="false" type="medium" usage="CURRENCY" formatindex="13">
<FormatCode>[CURRENCY]#,##0.00;-[CURRENCY]#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey3" default="false" type="medium" usage="CURRENCY" formatindex="14">
<FormatCode>[CURRENCY]#,##0;[RED]-[CURRENCY]#,##0</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey4" default="true" type="medium" usage="CURRENCY" formatindex="15">
<FormatCode>[CURRENCY]#,##0.00;[RED]-[CURRENCY]#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey5" default="false" type="medium" usage="CURRENCY" formatindex="16">
<FormatCode>CCC#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey6" default="false" type="medium" usage="CURRENCY" formatindex="17">
<FormatCode>[CURRENCY]#,##0.--;[RED]-[CURRENCY]#,##0.--</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey11" default="true" type="short" usage="DATE" formatindex="18">
<FormatCode>D/MM/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey14" default="true" type="long" usage="DATE" formatindex="19">
<FormatCode>NNNNDD, MMMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey6" default="true" type="medium" usage="DATE" formatindex="20">
<FormatCode>DD/MM/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey5" default="false" type="medium" usage="DATE" formatindex="21">
<FormatCode>DD/MM/YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey15" default="false" type="long" usage="DATE" formatindex="22">
<FormatCode>D, MMM YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey16" default="false" type="long" usage="DATE" formatindex="23">
<FormatCode>D, MMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey21" default="false" type="long" usage="DATE" formatindex="24">
<FormatCode>D, MMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey17" default="false" type="long" usage="DATE" formatindex="25">
<FormatCode>D, MMMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey22" default="false" type="long" usage="DATE" formatindex="26">
<FormatCode>D, MMMM YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey10" default="false" type="medium" usage="DATE" formatindex="27">
<FormatCode>NN, DD/MMM/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey18" default="false" type="long" usage="DATE" formatindex="28">
<FormatCode>NN, D, MMM YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey19" default="false" type="long" usage="DATE" formatindex="29">
<FormatCode>NN, D, MMMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey20" default="false" type="long" usage="DATE" formatindex="30">
<FormatCode>NNNND, MMMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey12" default="false" type="short" usage="DATE" formatindex="31">
<FormatCode>MM/DD</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey7" default="false" type="medium" usage="DATE" formatindex="32">
<FormatCode>YY-MM-DD</FormatCode>
<DefaultName>ISO 8601</DefaultName>
</FormatElement>
<FormatElement msgid="DateFormatskey8" default="false" type="medium" usage="DATE" formatindex="33">
<FormatCode>YYYY-MM-DD</FormatCode>
<DefaultName>ISO 8601</DefaultName>
</FormatElement>
<FormatElement msgid="DateFormatskey1" default="false" type="medium" usage="DATE" formatindex="34">
<FormatCode>MM/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey2" default="false" type="medium" usage="DATE" formatindex="35">
<FormatCode>MMM/DD</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey3" default="false" type="medium" usage="DATE" formatindex="36">
<FormatCode>MMMM</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey4" default="false" type="medium" usage="DATE" formatindex="37">
<FormatCode>QQ YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey9" default="false" type="medium" usage="DATE" formatindex="38">
<FormatCode>WW</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey1" default="false" type="short" usage="TIME" formatindex="39">
<FormatCode>HH:MM</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey2" default="false" type="medium" usage="TIME" formatindex="40">
<FormatCode>HH:MM:SS</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey3" default="true" type="short" usage="TIME" formatindex="41">
<FormatCode>HH:MM AM/PM</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey4" default="true" type="medium" usage="TIME" formatindex="42">
<FormatCode>HH:MM:SS AM/PM</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey5" default="false" type="medium" usage="TIME" formatindex="43">
<FormatCode>[HH]:MM:SS</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey6" default="false" type="short" usage="TIME" formatindex="44">
<FormatCode>MM:SS.00</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey7" default="false" type="medium" usage="TIME" formatindex="45">
<FormatCode>[HH]:MM:SS.00</FormatCode>
</FormatElement>
<FormatElement msgid="DateTimeFormatskey1" default="true" type="medium" usage="DATE_TIME" formatindex="46">
<FormatCode>DD/MM/YY HH:MM</FormatCode>
</FormatElement>
<FormatElement msgid="DateTimeFormatskey2" default="false" type="medium" usage="DATE_TIME" formatindex="47">
<FormatCode>DD/MM/YYYY HH:MM:SS AM/PM</FormatCode>
</FormatElement>
</LC_FORMAT>
<LC_COLLATION>
<Collator default="true" unoid="alphanumeric"/>
<CollationOptions>
<TransliterationModules>IGNORE_CASE</TransliterationModules>
</CollationOptions>
</LC_COLLATION>
<LC_SEARCH>
<SearchOptions>
<TransliterationModules>IGNORE_CASE</TransliterationModules>
</SearchOptions>
</LC_SEARCH>
<LC_INDEX>
<IndexKey phonetic="false" default="true" unoid="alphanumeric">A-Z À È Ì Ò Ù Ċ Ġ Ħ Ż</IndexKey>
<UnicodeScript>0</UnicodeScript>
<UnicodeScript>1</UnicodeScript>
<UnicodeScript>2</UnicodeScript>
<FollowPageWord>sing.</FollowPageWord>
<FollowPageWord>pl.</FollowPageWord>
</LC_INDEX>
<LC_CALENDAR>
<Calendar unoid="gregorian" default="true">
<DaysOfWeek>
<Day>
<DayID>sun</DayID>
<DefaultAbbrvName>Ħad</DefaultAbbrvName>
<DefaultFullName>Il-Ħadd</DefaultFullName>
</Day>
<Day>
<DayID>mon</DayID>
<DefaultAbbrvName>Tne</DefaultAbbrvName>
<DefaultFullName>It-Tnejn</DefaultFullName>
</Day>
<Day>
<DayID>tue</DayID>
<DefaultAbbrvName>Tli</DefaultAbbrvName>
<DefaultFullName>It-Tlieta</DefaultFullName>
</Day>
<Day>
<DayID>wed</DayID>
<DefaultAbbrvName>Erb</DefaultAbbrvName>
<DefaultFullName>L-Erbgħa</DefaultFullName>
</Day>
<Day>
<DayID>thu</DayID>
<DefaultAbbrvName>Ħam</DefaultAbbrvName>
<DefaultFullName>Il-Ħamis</DefaultFullName>
</Day>
<Day>
<DayID>fri</DayID>
<DefaultAbbrvName>Ġim</DefaultAbbrvName>
<DefaultFullName>Il-Ġimgħa</DefaultFullName>
</Day>
<Day>
<DayID>sat</DayID>
<DefaultAbbrvName>Sib</DefaultAbbrvName>
<DefaultFullName>Is-Sibt</DefaultFullName>
</Day>
</DaysOfWeek>
<MonthsOfYear>
<Month>
<MonthID>jan</MonthID>
<DefaultAbbrvName>Jan</DefaultAbbrvName>
<DefaultFullName>Jannar</DefaultFullName>
</Month>
<Month>
<MonthID>feb</MonthID>
<DefaultAbbrvName>Fra</DefaultAbbrvName>
<DefaultFullName>Frar</DefaultFullName>
</Month>
<Month>
<MonthID>mar</MonthID>
<DefaultAbbrvName>Mar</DefaultAbbrvName>
<DefaultFullName>Marzu</DefaultFullName>
</Month>
<Month>
<MonthID>apr</MonthID>
<DefaultAbbrvName>Apr</DefaultAbbrvName>
<DefaultFullName>April</DefaultFullName>
</Month>
<Month>
<MonthID>may</MonthID>
<DefaultAbbrvName>Mej</DefaultAbbrvName>
<DefaultFullName>Mejju</DefaultFullName>
</Month>
<Month>
<MonthID>jun</MonthID>
<DefaultAbbrvName>Ġun</DefaultAbbrvName>
<DefaultFullName>Ġunju</DefaultFullName>
</Month>
<Month>
<MonthID>jul</MonthID>
<DefaultAbbrvName>Lul</DefaultAbbrvName>
<DefaultFullName>Lulju</DefaultFullName>
</Month>
<Month>
<MonthID>aug</MonthID>
<DefaultAbbrvName>Aww</DefaultAbbrvName>
<DefaultFullName>Awwissu</DefaultFullName>
</Month>
<Month>
<MonthID>sep</MonthID>
<DefaultAbbrvName>Set</DefaultAbbrvName>
<DefaultFullName>Settembru</DefaultFullName>
</Month>
<Month>
<MonthID>oct</MonthID>
<DefaultAbbrvName>Ott</DefaultAbbrvName>
<DefaultFullName>Ottubru</DefaultFullName>
</Month>
<Month>
<MonthID>nov</MonthID>
<DefaultAbbrvName>Nov</DefaultAbbrvName>
<DefaultFullName>Novembru</DefaultFullName>
</Month>
<Month>
<MonthID>dec</MonthID>
<DefaultAbbrvName>Diċ</DefaultAbbrvName>
<DefaultFullName>Diċembru</DefaultFullName>
</Month>
</MonthsOfYear>
<Eras>
<Era>
<EraID>bc</EraID>
<DefaultAbbrvName>qK</DefaultAbbrvName>
<DefaultFullName>Qabel Kristu</DefaultFullName>
</Era>
<Era>
<EraID>ad</EraID>
<DefaultAbbrvName>wK</DefaultAbbrvName>
<DefaultFullName>Wara Kristu</DefaultFullName>
</Era>
</Eras>
<StartDayOfWeek>
<DayID>mon</DayID>
</StartDayOfWeek>
<MinimalDaysInFirstWeek>4</MinimalDaysInFirstWeek>
</Calendar>
</LC_CALENDAR>
<LC_CURRENCY>
<Currency default="true" usedInCompatibleFormatCodes="true">
<CurrencyID>EUR</CurrencyID>
<CurrencySymbol></CurrencySymbol>
<BankSymbol>EUR</BankSymbol>
<CurrencyName>Ewro</CurrencyName>
<DecimalPlaces>2</DecimalPlaces>
</Currency>
</LC_CURRENCY>
<LC_TRANSLITERATION>
<Transliteration unoid="LOWERCASE_UPPERCASE"/>
<Transliteration unoid="UPPERCASE_LOWERCASE"/>
<Transliteration unoid="IGNORE_CASE"/>
</LC_TRANSLITERATION>
<LC_MISC>
<ReservedWords>
<trueWord>Veru</trueWord>
<falseWord>Falz</falseWord>
<quarter1Word>L-ewwel kwart</quarter1Word>
<quarter2Word>It-tieni kwart</quarter2Word>
<quarter3Word>It-tielet kwart</quarter3Word>
<quarter4Word>Ir-raba' kwart</quarter4Word>
<aboveWord>fuq</aboveWord>
<belowWord>taħt</belowWord>
<quarter1Abbreviation>K1</quarter1Abbreviation>
<quarter2Abbreviation>K2</quarter2Abbreviation>
<quarter3Abbreviation>K3</quarter3Abbreviation>
<quarter4Abbreviation>K4</quarter4Abbreviation>
</ReservedWords>
</LC_MISC>
<LC_NumberingLevel>
<NumberingLevel NumType="4" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="4" Prefix=" " Suffix="."/>
<NumberingLevel NumType="4" Prefix="(" Suffix=")"/>
<NumberingLevel NumType="2" Prefix=" " Suffix="."/>
<NumberingLevel NumType="0" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="1" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="1" Prefix="(" Suffix=")"/>
<NumberingLevel NumType="3" Prefix=" " Suffix="."/>
</LC_NumberingLevel>
<LC_OutLineNumberingLevel ref="en_US"/>
</Locale>
<!--Version 1.0 -->

View File

@ -0,0 +1,486 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Locale SYSTEM 'locale.dtd'>
<Locale versionDTD="2.0.3" allowUpdateFromCLDR="no" version="1.2">
<LC_INFO>
<Language>
<LangID>my</LangID>
<DefaultName>Burmese</DefaultName>
</Language>
<Country>
<CountryID>MM</CountryID>
<DefaultName>Myanmar</DefaultName>
</Country>
</LC_INFO>
<LC_CTYPE>
<Separators>
<DateSeparator>/</DateSeparator>
<ThousandSeparator>,</ThousandSeparator>
<DecimalSeparator>.</DecimalSeparator>
<TimeSeparator>:</TimeSeparator>
<Time100SecSeparator>.</Time100SecSeparator>
<ListSeparator>;</ListSeparator>
<LongDateDayOfWeekSeparator></LongDateDayOfWeekSeparator>
<LongDateDaySeparator></LongDateDaySeparator>
<LongDateMonthSeparator> </LongDateMonthSeparator>
<LongDateYearSeparator> </LongDateYearSeparator>
</Separators>
<Markers>
<QuotationStart></QuotationStart>
<QuotationEnd></QuotationEnd>
<DoubleQuotationStart></DoubleQuotationStart>
<DoubleQuotationEnd></DoubleQuotationEnd>
</Markers>
<TimeAM>နံနက်</TimeAM>
<TimePM>ညနေ</TimePM>
<MeasurementSystem>US</MeasurementSystem>
</LC_CTYPE>
<LC_FORMAT replaceFrom="[CURRENCY]" replaceTo="[$ကျပ်-455]">
<FormatElement msgid="FixedFormatskey1" default="true" type="medium" usage="FIXED_NUMBER" formatindex="0">
<FormatCode>[NatNum1]General</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey2" default="true" type="short" usage="FIXED_NUMBER" formatindex="1">
<FormatCode>[NatNum1]0</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey3" default="false" type="medium" usage="FIXED_NUMBER" formatindex="2">
<FormatCode>[NatNum1]0.00</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey4" default="false" type="short" usage="FIXED_NUMBER" formatindex="3">
<FormatCode>[NatNum1]#,##0</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey5" default="false" type="medium" usage="FIXED_NUMBER" formatindex="4">
<FormatCode>[NatNum1]#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey6" default="false" type="medium" usage="FIXED_NUMBER" formatindex="5">
<FormatCode>[NatNum1]#,###.00</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey7" default="false" type="medium" usage="FIXED_NUMBER" formatindex="50">
<FormatCode>General</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey8" default="false" type="short" usage="FIXED_NUMBER" formatindex="51">
<FormatCode>0</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey9" default="false" type="medium" usage="FIXED_NUMBER" formatindex="52">
<FormatCode>0.00</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey10" default="false" type="short" usage="FIXED_NUMBER" formatindex="53">
<FormatCode>#,##0</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey11" default="false" type="medium" usage="FIXED_NUMBER" formatindex="54">
<FormatCode>#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey12" default="false" type="medium" usage="FIXED_NUMBER" formatindex="55">
<FormatCode>#,###.00</FormatCode>
</FormatElement>
<FormatElement msgid="ScientificFormatskey1" default="true" type="medium" usage="SCIENTIFIC_NUMBER" formatindex="6">
<FormatCode>0.00E+000</FormatCode>
</FormatElement>
<FormatElement msgid="ScientificFormatskey2" default="false" type="medium" usage="SCIENTIFIC_NUMBER" formatindex="7">
<FormatCode>0.00E+00</FormatCode>
</FormatElement>
<FormatElement msgid="PercentFormatskey3" default="false" type="short" usage="PERCENT_NUMBER" formatindex="58">
<FormatCode>[NatNum1]0%</FormatCode>
</FormatElement>
<FormatElement msgid="PercentFormatskey4" default="false" type="long" usage="PERCENT_NUMBER" formatindex="59">
<FormatCode>[NatNum1]0.00%</FormatCode>
</FormatElement>
<FormatElement msgid="PercentFormatskey1" default="true" type="short" usage="PERCENT_NUMBER" formatindex="8">
<FormatCode>0%</FormatCode>
</FormatElement>
<FormatElement msgid="PercentFormatskey2" default="true" type="long" usage="PERCENT_NUMBER" formatindex="9">
<FormatCode>0.00%</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey1" default="true" type="short" usage="CURRENCY" formatindex="12">
<FormatCode>[CURRENCY]#,##0;-[CURRENCY]#,##0</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey2" default="false" type="medium" usage="CURRENCY" formatindex="13">
<FormatCode>[CURRENCY]#,##0.00;-[CURRENCY]#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey3" default="false" type="medium" usage="CURRENCY" formatindex="14">
<FormatCode>[CURRENCY]#,##0;[RED]-[CURRENCY]#,##0</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey4" default="false" type="medium" usage="CURRENCY" formatindex="15">
<FormatCode>[CURRENCY]#,##0.00;[RED]-[CURRENCY]#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey5" default="false" type="medium" usage="CURRENCY" formatindex="16">
<FormatCode>#,##0.00 CCC</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey6" default="false" type="medium" usage="CURRENCY" formatindex="17">
<FormatCode>[CURRENCY]#,##0.--;[RED]-[CURRENCY]#,##0.--</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey7" default="true" type="medium" usage="CURRENCY" formatindex="80">
<FormatCode>[NatNum1]#,##0[CURRENCY];[NatNum1]-#,##0[CURRENCY]</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey8" default="true" type="long" usage="CURRENCY" formatindex="81">
<FormatCode>[NatNum1]#,##0 [CURRENCY];[NatNum1]-#,##0 [CURRENCY]</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey9" default="false" type="long" usage="CURRENCY" formatindex="82">
<FormatCode>[NatNum1]#,##0 [CURRENCY];[RED][NatNum1]-#,##0 [CURRENCY]</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey1" default="false" type="short" usage="DATE" formatindex="18">
<FormatCode>D/M/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey9" default="false" type="long" usage="DATE" formatindex="19">
<FormatCode>NNNNMMMM DD, YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey8" default="false" type="medium" usage="DATE" formatindex="20">
<FormatCode>MM/DD/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey7" default="false" type="medium" usage="DATE" formatindex="21">
<FormatCode>DD/MM/YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey10" default="false" type="long" usage="DATE" formatindex="22">
<FormatCode>MMM D, YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey11" default="false" type="long" usage="DATE" formatindex="23">
<FormatCode>MMM D, YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey16" default="false" type="long" usage="DATE" formatindex="24">
<FormatCode>D. MMM. YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey12" default="false" type="long" usage="DATE" formatindex="25">
<FormatCode>MMMM D, YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey17" default="false" type="long" usage="DATE" formatindex="26">
<FormatCode>D. MMMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey13" default="false" type="long" usage="DATE" formatindex="27">
<FormatCode>NN, MMM D, YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey2" default="false" type="medium" usage="DATE" formatindex="28">
<FormatCode>NN DD/MMM YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey14" default="false" type="long" usage="DATE" formatindex="29">
<FormatCode>NN, MMMM D, YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey15" default="false" type="long" usage="DATE" formatindex="30">
<FormatCode>NNNNMMMM D, YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey18" default="false" type="short" usage="DATE" formatindex="31">
<FormatCode>MM-DD</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey19" default="false" type="medium" usage="DATE" formatindex="32">
<FormatCode>YY-MM-DD</FormatCode>
<DefaultName>ISO 8601</DefaultName>
</FormatElement>
<FormatElement msgid="DateFormatskey20" default="false" type="medium" usage="DATE" formatindex="33">
<FormatCode>YYYY-MM-DD</FormatCode>
<DefaultName>ISO 8601</DefaultName>
</FormatElement>
<FormatElement msgid="DateFormatskey3" default="false" type="medium" usage="DATE" formatindex="34">
<FormatCode>MM/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey4" default="false" type="medium" usage="DATE" formatindex="35">
<FormatCode>MMM DD</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey5" default="false" type="medium" usage="DATE" formatindex="36">
<FormatCode>MMMM</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey6" default="false" type="medium" usage="DATE" formatindex="37">
<FormatCode>QQ YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey21" default="false" type="medium" usage="DATE" formatindex="38">
<FormatCode>WW</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey22" default="true" type="medium" usage="DATE" formatindex="60">
<FormatCode>[NatNum1]DD/MM/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey23" default="true" type="short" usage="DATE" formatindex="61">
<FormatCode>[NatNum1]D/M/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey24" default="false" type="medium" usage="DATE" formatindex="62">
<FormatCode>[NatNum1]DD/MM/YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey25" default="false" type="medium" usage="DATE" formatindex="63">
<FormatCode>[NatNum1]DD-MM-YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey26" default="false" type="long" usage="DATE" formatindex="64">
<FormatCode>[NatNum1]D. MMM. YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey27" default="false" type="long" usage="DATE" formatindex="65">
<FormatCode>[NatNum1]D. MMMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey28" default="true" type="long" usage="DATE" formatindex="66">
<FormatCode>[NatNum1]NNN၊ MMMM D၊ YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey29" default="false" type="long" usage="DATE" formatindex="67">
<FormatCode>[NatNum1]MMMM D</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey30" default="false" type="medium" usage="DATE" formatindex="68">
<FormatCode>[NatNum1]YYYYခုနှစ်၊ MMMMလ Dရက် NNNနေ့</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey1" default="false" type="short" usage="TIME" formatindex="39">
<FormatCode>HH:MM</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey2" default="false" type="medium" usage="TIME" formatindex="40">
<FormatCode>HH:MM:SS</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey3" default="false" type="short" usage="TIME" formatindex="41">
<FormatCode>HH:MM AM/PM</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey4" default="false" type="medium" usage="TIME" formatindex="42">
<FormatCode>HH:MM:SS AM/PM</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey5" default="false" type="medium" usage="TIME" formatindex="43">
<FormatCode>[HH]:MM:SS</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey6" default="false" type="short" usage="TIME" formatindex="44">
<FormatCode>MM:SS.00</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey7" default="false" type="medium" usage="TIME" formatindex="45">
<FormatCode>[HH]:MM:SS.00</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey8" default="true" type="short" usage="TIME" formatindex="70">
<FormatCode>[NatNum1]HH:MM</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey9" default="true" type="medium" usage="TIME" formatindex="71">
<FormatCode>[NatNum1]HH:MM:SS</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey10" default="false" type="medium" usage="TIME" formatindex="72">
<FormatCode>[NatNum1]HHနာရီ MMမိနစ်</FormatCode>
</FormatElement>
<FormatElement msgid="DateTimeFormatskey1" default="true" type="medium" usage="DATE_TIME" formatindex="46">
<FormatCode>MM/DD/YY HH:MM AM/PM</FormatCode>
</FormatElement>
<FormatElement msgid="DateTimeFormatskey2" default="false" type="medium" usage="DATE_TIME" formatindex="47">
<FormatCode>DD/MM/YYYY HH:MM:SS</FormatCode>
</FormatElement>
<FormatElement msgid="DateTimeFormatskey3" default="false" type="medium" usage="DATE_TIME" formatindex="73">
<FormatCode>[NatNum1]DD/MM/YYYY HH:MM:SS</FormatCode>
</FormatElement>
</LC_FORMAT>
<LC_COLLATION>
<Collator default="true" unoid="dictionary" />
<CollationOptions>
<TransliterationModules>IGNORE_CASE</TransliterationModules>
</CollationOptions>
</LC_COLLATION>
<LC_SEARCH>
<SearchOptions>
<TransliterationModules>IGNORE_CASE</TransliterationModules>
</SearchOptions>
</LC_SEARCH>
<LC_INDEX>
<IndexKey phonetic="false" default="true" unoid="alphanumeric">က-အ ဣ-ဧ ဩ-ဪ</IndexKey>
<UnicodeScript>27</UnicodeScript>
<FollowPageWord>p.</FollowPageWord>
<FollowPageWord>pp.</FollowPageWord>
</LC_INDEX>
<LC_CALENDAR>
<Calendar unoid="gregorian" default="true">
<DaysOfWeek>
<Day>
<DayID>sun</DayID>
<DefaultAbbrvName>နွေ</DefaultAbbrvName>
<DefaultFullName>တနင်္ဂနွေ</DefaultFullName>
</Day>
<Day>
<DayID>mon</DayID>
<DefaultAbbrvName>လာ</DefaultAbbrvName>
<DefaultFullName>တနင်္လာ</DefaultFullName>
</Day>
<Day>
<DayID>tue</DayID>
<DefaultAbbrvName>ဂါ</DefaultAbbrvName>
<DefaultFullName>အင်္ဂါ</DefaultFullName>
</Day>
<Day>
<DayID>wed</DayID>
<DefaultAbbrvName>ဟူး</DefaultAbbrvName>
<DefaultFullName>ဗုဒ္ဓဟူး</DefaultFullName>
</Day>
<Day>
<DayID>thu</DayID>
<DefaultAbbrvName>တေး</DefaultAbbrvName>
<DefaultFullName>ကြာသပတေး</DefaultFullName>
</Day>
<Day>
<DayID>fri</DayID>
<DefaultAbbrvName>ကြာ</DefaultAbbrvName>
<DefaultFullName>သောကြာ</DefaultFullName>
</Day>
<Day>
<DayID>sat</DayID>
<DefaultAbbrvName>နေ</DefaultAbbrvName>
<DefaultFullName>စနေ</DefaultFullName>
</Day>
</DaysOfWeek>
<MonthsOfYear>
<Month>
<MonthID>jan</MonthID>
<DefaultAbbrvName>ဇန်</DefaultAbbrvName>
<DefaultFullName>ဇန်နဝါရီ</DefaultFullName>
</Month>
<Month>
<MonthID>feb</MonthID>
<DefaultAbbrvName>ဖေ</DefaultAbbrvName>
<DefaultFullName>ဖေဖော်ဝါရီ</DefaultFullName>
</Month>
<Month>
<MonthID>mar</MonthID>
<DefaultAbbrvName>မတ်</DefaultAbbrvName>
<DefaultFullName>မတ်</DefaultFullName>
</Month>
<Month>
<MonthID>apr</MonthID>
<DefaultAbbrvName>ဧပြီ</DefaultAbbrvName>
<DefaultFullName>ဧပြီ</DefaultFullName>
</Month>
<Month>
<MonthID>may</MonthID>
<DefaultAbbrvName>မေ</DefaultAbbrvName>
<DefaultFullName>မေ</DefaultFullName>
</Month>
<Month>
<MonthID>jun</MonthID>
<DefaultAbbrvName>ဇွန်</DefaultAbbrvName>
<DefaultFullName>ဇွန်</DefaultFullName>
</Month>
<Month>
<MonthID>jul</MonthID>
<DefaultAbbrvName>ဇူ</DefaultAbbrvName>
<DefaultFullName>ဇူလိုင်</DefaultFullName>
</Month>
<Month>
<MonthID>aug</MonthID>
<DefaultAbbrvName></DefaultAbbrvName>
<DefaultFullName>ဩဂုတ်</DefaultFullName>
</Month>
<Month>
<MonthID>sep</MonthID>
<DefaultAbbrvName>စက်</DefaultAbbrvName>
<DefaultFullName>စက်တင်ဘာ</DefaultFullName>
</Month>
<Month>
<MonthID>oct</MonthID>
<DefaultAbbrvName>အောက်</DefaultAbbrvName>
<DefaultFullName>အောက်တိုဘာ</DefaultFullName>
</Month>
<Month>
<MonthID>nov</MonthID>
<DefaultAbbrvName>နို</DefaultAbbrvName>
<DefaultFullName>နိုဝင်ဘာ</DefaultFullName>
</Month>
<Month>
<MonthID>dec</MonthID>
<DefaultAbbrvName>ဒီ</DefaultAbbrvName>
<DefaultFullName>ဒီဇင်ဘာ</DefaultFullName>
</Month>
</MonthsOfYear>
<Eras>
<Era>
<EraID>bc</EraID>
<DefaultAbbrvName>ဘီစီ</DefaultAbbrvName>
<DefaultFullName>ခရစ်တော် မပေါ်မီကာလ</DefaultFullName>
</Era>
<Era>
<EraID>ad</EraID>
<DefaultAbbrvName>အေဒီ</DefaultAbbrvName>
<DefaultFullName>ခရစ်တော် ပေါ်ထွန်းပြီးကာလ</DefaultFullName>
</Era>
</Eras>
<StartDayOfWeek>
<DayID>mon</DayID>
</StartDayOfWeek>
<MinimalDaysInFirstWeek>1</MinimalDaysInFirstWeek>
</Calendar>
</LC_CALENDAR>
<LC_CURRENCY>
<Currency default="true" usedInCompatibleFormatCodes="true">
<CurrencyID>MMK</CurrencyID>
<CurrencySymbol>K</CurrencySymbol>
<BankSymbol>MMK</BankSymbol>
<CurrencyName>Kyat</CurrencyName>
<DecimalPlaces>2</DecimalPlaces>
</Currency>
</LC_CURRENCY>
<LC_TRANSLITERATION>
<!-- There is often English mixed with Myanmar, so leave these in for now -->
<Transliteration unoid="LOWERCASE_UPPERCASE"/>
<Transliteration unoid="UPPERCASE_LOWERCASE"/>
<Transliteration unoid="IGNORE_CASE"/>
</LC_TRANSLITERATION>
<LC_MISC>
<ReservedWords>
<trueWord>မှန်</trueWord>
<falseWord>မှား</falseWord>
<quarter1Word>ပထမ သုံးလပတ်</quarter1Word>
<quarter2Word>ဒုတိယ သုံးလပတ်</quarter2Word>
<quarter3Word>တတိယ သုံးလပတ်</quarter3Word>
<quarter4Word>စတုတ္ထ သုံးလပတ်</quarter4Word>
<aboveWord>အပေါ်</aboveWord>
<belowWord>အောက်</belowWord>
<quarter1Abbreviation>ပ-စိတ်</quarter1Abbreviation>
<quarter2Abbreviation>ဒု-စိတ်</quarter2Abbreviation>
<quarter3Abbreviation>တ-စိတ်</quarter3Abbreviation>
<quarter4Abbreviation>စ-စိတ်</quarter4Abbreviation>
</ReservedWords>
</LC_MISC>
<LC_NumberingLevel>
<NumberingLevel NumType="12" Prefix=" " Suffix="။"/>
<NumberingLevel NumType="12" Prefix="(" Suffix=")"/>
<NumberingLevel NumType="4" Prefix=" " Suffix="."/>
<NumberingLevel NumType="4" Prefix="(" Suffix=")"/>
<NumberingLevel NumType="47" Prefix=" " Suffix="။"/>
<NumberingLevel NumType="47" Prefix="(" Suffix=")"/>
<NumberingLevel NumType="0" Prefix=" " Suffix="."/>
<NumberingLevel NumType="1" Prefix=" " Suffix="."/>
</LC_NumberingLevel>
<LC_OutLineNumberingLevel>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="။" BulletChar="0020" BulletFontName="" ParentNumbering="1" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="47" Suffix="။" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="47" Suffix="။" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix="(" NumType="47" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix="." BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="47" Suffix="။" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="47" Suffix="။" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="။" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="1" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="2" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="3" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="12" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="4" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="27A2" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="E006" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=")" BulletChar="E004" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
</LC_OutLineNumberingLevel>
</Locale>

View File

@ -231,72 +231,6 @@
<quarter4Abbreviation>K4</quarter4Abbreviation> <quarter4Abbreviation>K4</quarter4Abbreviation>
</ReservedWords> </ReservedWords>
</LC_MISC> </LC_MISC>
<LC_NumberingLevel> <LC_NumberingLevel ref="sr_RS"/>
<NumberingLevel NumType="4" Prefix=" " Suffix=")"/> <LC_OutLineNumberingLevel ref="sr_RS"/>
<NumberingLevel NumType="4" Prefix=" " Suffix="."/>
<NumberingLevel NumType="4" Prefix="(" Suffix="."/>
<NumberingLevel NumType="2" Prefix=" " Suffix="."/>
<NumberingLevel NumType="0" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="1" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="1" Prefix="(" Suffix=")"/>
<NumberingLevel NumType="3" Prefix=" " Suffix="."/>
</LC_NumberingLevel>
<LC_OutLineNumberingLevel>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="1" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix="(" NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix="." BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="2" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="2" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix=" " BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix=" " BulletChar="0020" BulletFontName="" ParentNumbering="1" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix=" " BulletChar="0020" BulletFontName="" ParentNumbering="2" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix=" " BulletChar="0020" BulletFontName="" ParentNumbering="3" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix=" " BulletChar="0020" BulletFontName="" ParentNumbering="4" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="27A2" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="E006" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=")" BulletChar="E004" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
</LC_OutLineNumberingLevel>
</Locale> </Locale>

View File

@ -0,0 +1,414 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Locale SYSTEM 'locale.dtd'>
<Locale versionDTD="2.0.3" allowUpdateFromCLDR="yes" version="1.2">
<LC_INFO>
<Language>
<LangID>shs</LangID>
<DefaultName>Shuswap</DefaultName>
</Language>
<Country>
<CountryID>CA</CountryID>
<DefaultName>Canada</DefaultName>
</Country>
</LC_INFO>
<LC_CTYPE>
<Separators>
<DateSeparator>/</DateSeparator>
<ThousandSeparator>,</ThousandSeparator>
<DecimalSeparator>.</DecimalSeparator>
<TimeSeparator>:</TimeSeparator>
<Time100SecSeparator>.</Time100SecSeparator>
<ListSeparator>;</ListSeparator>
<LongDateDayOfWeekSeparator>, </LongDateDayOfWeekSeparator>
<LongDateDaySeparator>, </LongDateDaySeparator>
<LongDateMonthSeparator> </LongDateMonthSeparator>
<LongDateYearSeparator> </LongDateYearSeparator>
</Separators>
<Markers>
<QuotationStart></QuotationStart>
<QuotationEnd></QuotationEnd>
<DoubleQuotationStart></DoubleQuotationStart>
<DoubleQuotationEnd></DoubleQuotationEnd>
</Markers>
<TimeAM>AM</TimeAM>
<TimePM>PM</TimePM>
<MeasurementSystem>metric</MeasurementSystem>
</LC_CTYPE>
<LC_FORMAT replaceFrom="[CURRENCY]" replaceTo="[$$-648]">
<FormatElement msgid="FixedFormatskey1" default="true" type="medium" usage="FIXED_NUMBER" formatindex="0">
<FormatCode>General</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey2" default="true" type="short" usage="FIXED_NUMBER" formatindex="1">
<FormatCode>0</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey3" default="false" type="medium" usage="FIXED_NUMBER" formatindex="2">
<FormatCode>0.00</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey4" default="false" type="short" usage="FIXED_NUMBER" formatindex="3">
<FormatCode>#,##0</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey5" default="false" type="medium" usage="FIXED_NUMBER" formatindex="4">
<FormatCode>#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey6" default="false" type="medium" usage="FIXED_NUMBER" formatindex="5">
<FormatCode>#,###.00</FormatCode>
</FormatElement>
<FormatElement msgid="ScientificFormatskey1" default="true" type="medium" usage="SCIENTIFIC_NUMBER" formatindex="6">
<FormatCode>0.00E+000</FormatCode>
</FormatElement>
<FormatElement msgid="ScientificFormatskey2" default="false" type="medium" usage="SCIENTIFIC_NUMBER" formatindex="7">
<FormatCode>0.00E+00</FormatCode>
</FormatElement>
<FormatElement msgid="PercentFormatskey1" default="true" type="short" usage="PERCENT_NUMBER" formatindex="8">
<FormatCode>0%</FormatCode>
</FormatElement>
<FormatElement msgid="PercentFormatskey2" default="true" type="long" usage="PERCENT_NUMBER" formatindex="9">
<FormatCode>0.00%</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey1" default="true" type="short" usage="CURRENCY" formatindex="12">
<FormatCode>[CURRENCY]#,##0;-[CURRENCY]#,##0</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey2" default="false" type="medium" usage="CURRENCY" formatindex="13">
<FormatCode>[CURRENCY]#,##0.00;-[CURRENCY]#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey3" default="false" type="medium" usage="CURRENCY" formatindex="14">
<FormatCode>[CURRENCY]#,##0;[RED]-[CURRENCY]#,##0</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey4" default="true" type="medium" usage="CURRENCY" formatindex="15">
<FormatCode>[CURRENCY]#,##0.00;[RED]-[CURRENCY]#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey5" default="false" type="medium" usage="CURRENCY" formatindex="16">
<FormatCode>#,##0.00 CCC</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey6" default="false" type="medium" usage="CURRENCY" formatindex="17">
<FormatCode>[CURRENCY]#,##0.--;[RED]-[CURRENCY]#,##0.--</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey1" default="true" type="short" usage="DATE" formatindex="18">
<FormatCode>M/D/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey9" default="true" type="long" usage="DATE" formatindex="19">
<FormatCode>NNNNMMMM DD, YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey8" default="true" type="medium" usage="DATE" formatindex="20">
<FormatCode>MM/DD/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey7" default="false" type="medium" usage="DATE" formatindex="21">
<FormatCode>MM/DD/YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey10" default="false" type="long" usage="DATE" formatindex="22">
<FormatCode>MMM D, YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey11" default="false" type="long" usage="DATE" formatindex="23">
<FormatCode>MMM D, YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey16" default="false" type="long" usage="DATE" formatindex="24">
<FormatCode>D. MMM. YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey12" default="false" type="long" usage="DATE" formatindex="25">
<FormatCode>MMMM D, YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey17" default="false" type="long" usage="DATE" formatindex="26">
<FormatCode>D. MMMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey13" default="false" type="long" usage="DATE" formatindex="27">
<FormatCode>NN, MMM D, YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey2" default="false" type="medium" usage="DATE" formatindex="28">
<FormatCode>NN DD/MMM YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey14" default="false" type="long" usage="DATE" formatindex="29">
<FormatCode>NN, MMMM D, YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey15" default="false" type="long" usage="DATE" formatindex="30">
<FormatCode>NNNNMMMM D, YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey18" default="false" type="short" usage="DATE" formatindex="31">
<FormatCode>MM-DD</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey19" default="false" type="medium" usage="DATE" formatindex="32">
<FormatCode>YY-MM-DD</FormatCode>
<DefaultName>ISO 8601</DefaultName>
</FormatElement>
<FormatElement msgid="DateFormatskey20" default="false" type="medium" usage="DATE" formatindex="33">
<FormatCode>YYYY-MM-DD</FormatCode>
<DefaultName>ISO 8601</DefaultName>
</FormatElement>
<FormatElement msgid="DateFormatskey3" default="false" type="medium" usage="DATE" formatindex="34">
<FormatCode>MM/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey4" default="false" type="medium" usage="DATE" formatindex="35">
<FormatCode>MMM DD</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey5" default="false" type="medium" usage="DATE" formatindex="36">
<FormatCode>MMMM</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey6" default="false" type="medium" usage="DATE" formatindex="37">
<FormatCode>QQ YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey21" default="false" type="medium" usage="DATE" formatindex="38">
<FormatCode>WW</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey1" default="false" type="short" usage="TIME" formatindex="39">
<FormatCode>HH:MM</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey2" default="false" type="medium" usage="TIME" formatindex="40">
<FormatCode>HH:MM:SS</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey3" default="true" type="short" usage="TIME" formatindex="41">
<FormatCode>HH:MM AM/PM</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey4" default="true" type="medium" usage="TIME" formatindex="42">
<FormatCode>HH:MM:SS AM/PM</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey5" default="false" type="medium" usage="TIME" formatindex="43">
<FormatCode>[HH]:MM:SS</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey6" default="false" type="short" usage="TIME" formatindex="44">
<FormatCode>MM:SS.00</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey7" default="false" type="medium" usage="TIME" formatindex="45">
<FormatCode>[HH]:MM:SS.00</FormatCode>
</FormatElement>
<FormatElement msgid="DateTimeFormatskey1" default="true" type="medium" usage="DATE_TIME" formatindex="46">
<FormatCode>MM/DD/YY HH:MM AM/PM</FormatCode>
</FormatElement>
<FormatElement msgid="DateTimeFormatskey2" default="false" type="medium" usage="DATE_TIME" formatindex="47">
<FormatCode>MM/DD/YYYY HH:MM:SS</FormatCode>
</FormatElement>
</LC_FORMAT>
<LC_COLLATION>
<Collator default="true" unoid="alphanumeric" />
<CollationOptions>
<TransliterationModules>IGNORE_CASE</TransliterationModules>
</CollationOptions>
</LC_COLLATION>
<LC_SEARCH>
<SearchOptions>
<TransliterationModules>IGNORE_CASE</TransliterationModules>
</SearchOptions>
</LC_SEARCH>
<LC_INDEX>
<IndexKey phonetic="false" default="true" unoid="alphanumeric">A-Z</IndexKey>
<UnicodeScript>0</UnicodeScript>
<UnicodeScript>1</UnicodeScript>
<FollowPageWord>p.</FollowPageWord>
<FollowPageWord>pp.</FollowPageWord>
</LC_INDEX>
<LC_CALENDAR>
<Calendar unoid="gregorian" default="true">
<DaysOfWeek>
<Day>
<DayID>sun</DayID>
<DefaultAbbrvName>Sxe</DefaultAbbrvName>
<DefaultFullName>Sxetspesq't</DefaultFullName>
</Day>
<Day>
<DayID>mon</DayID>
<DefaultAbbrvName>Spe</DefaultAbbrvName>
<DefaultFullName>Spetkesq't</DefaultFullName>
</Day>
<Day>
<DayID>tue</DayID>
<DefaultAbbrvName>Sel</DefaultAbbrvName>
<DefaultFullName>Selesq't</DefaultFullName>
</Day>
<Day>
<DayID>wed</DayID>
<DefaultAbbrvName>Ske</DefaultAbbrvName>
<DefaultFullName>Skellesq't</DefaultFullName>
</Day>
<Day>
<DayID>thu</DayID>
<DefaultAbbrvName>Sme</DefaultAbbrvName>
<DefaultFullName>Smesesq't</DefaultFullName>
</Day>
<Day>
<DayID>fri</DayID>
<DefaultAbbrvName>Sts</DefaultAbbrvName>
<DefaultFullName>Stselkstesq't</DefaultFullName>
</Day>
<Day>
<DayID>sat</DayID>
<DefaultAbbrvName>Stq</DefaultAbbrvName>
<DefaultFullName>Stqmekstesq't</DefaultFullName>
</Day>
</DaysOfWeek>
<MonthsOfYear>
<Month>
<MonthID>jan</MonthID>
<DefaultAbbrvName>Kwe </DefaultAbbrvName>
<DefaultFullName>Pellkwet'min</DefaultFullName>
</Month>
<Month>
<MonthID>feb</MonthID>
<DefaultAbbrvName>Tsi</DefaultAbbrvName>
<DefaultFullName>Pelctsipwen'ten</DefaultFullName>
</Month>
<Month>
<MonthID>mar</MonthID>
<DefaultAbbrvName>Sqe</DefaultAbbrvName>
<DefaultFullName>Pellsqe'pts</DefaultFullName>
</Month>
<Month>
<MonthID>apr</MonthID>
<DefaultAbbrvName>E'w</DefaultAbbrvName>
<DefaultFullName>Peslle'wten</DefaultFullName>
</Month>
<Month>
<MonthID>may</MonthID>
<DefaultAbbrvName>Ell</DefaultAbbrvName>
<DefaultFullName>Pell7ell7e'7llqten</DefaultFullName>
</Month>
<Month>
<MonthID>jun</MonthID>
<DefaultAbbrvName>Tsp</DefaultAbbrvName>
<DefaultFullName>Pelltspe'ntsk</DefaultFullName>
</Month>
<Month>
<MonthID>jul</MonthID>
<DefaultAbbrvName>Tqw</DefaultAbbrvName>
<DefaultFullName>Pelltqwelq'we'l't</DefaultFullName>
</Month>
<Month>
<MonthID>aug</MonthID>
<DefaultAbbrvName>Ct'</DefaultAbbrvName>
<DefaultFullName>Pellct'e'xel'cten</DefaultFullName>
</Month>
<Month>
<MonthID>sep</MonthID>
<DefaultAbbrvName>Qel</DefaultAbbrvName>
<DefaultFullName>Pesqelqle'lten</DefaultFullName>
</Month>
<Month>
<MonthID>oct</MonthID>
<DefaultAbbrvName>Wel</DefaultAbbrvName>
<DefaultFullName>Pesllwe'lsten</DefaultFullName>
</Month>
<Month>
<MonthID>nov</MonthID>
<DefaultAbbrvName>U7l</DefaultAbbrvName>
<DefaultFullName>Pellc7ell7u'7llcwten'</DefaultFullName>
</Month>
<Month>
<MonthID>dec</MonthID>
<DefaultAbbrvName>Tet</DefaultAbbrvName>
<DefaultFullName>Pelltete'tq'em</DefaultFullName>
</Month>
</MonthsOfYear>
<Eras>
<Era>
<EraID>bc</EraID>
<DefaultAbbrvName>BC</DefaultAbbrvName>
<DefaultFullName>BC</DefaultFullName>
</Era>
<Era>
<EraID>ad</EraID>
<DefaultAbbrvName>AD</DefaultAbbrvName>
<DefaultFullName>AD</DefaultFullName>
</Era>
</Eras>
<StartDayOfWeek>
<DayID>sun</DayID>
</StartDayOfWeek>
<MinimalDaysInFirstWeek>1</MinimalDaysInFirstWeek>
</Calendar>
</LC_CALENDAR>
<LC_CURRENCY>
<Currency default="true" usedInCompatibleFormatCodes="true">
<CurrencyID>CAD</CurrencyID>
<CurrencySymbol>$</CurrencySymbol>
<BankSymbol>CAD</BankSymbol>
<CurrencyName>CA Dollar</CurrencyName>
<DecimalPlaces>2</DecimalPlaces>
</Currency>
</LC_CURRENCY>
<LC_TRANSLITERATION>
<Transliteration unoid="LOWERCASE_UPPERCASE"/>
<Transliteration unoid="UPPERCASE_LOWERCASE"/>
<Transliteration unoid="IGNORE_CASE"/>
</LC_TRANSLITERATION>
<LC_MISC>
<ReservedWords>
<trueWord>true</trueWord>
<falseWord>false</falseWord>
<quarter1Word>1st quarter</quarter1Word>
<quarter2Word>2nd quarter</quarter2Word>
<quarter3Word>3rd quarter</quarter3Word>
<quarter4Word>4th quarter</quarter4Word>
<aboveWord>above</aboveWord>
<belowWord>below</belowWord>
<quarter1Abbreviation>Q1</quarter1Abbreviation>
<quarter2Abbreviation>Q2</quarter2Abbreviation>
<quarter3Abbreviation>Q3</quarter3Abbreviation>
<quarter4Abbreviation>Q4</quarter4Abbreviation>
</ReservedWords>
</LC_MISC>
<LC_NumberingLevel>
<NumberingLevel NumType="4" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="4" Prefix=" " Suffix="."/>
<NumberingLevel NumType="4" Prefix="(" Suffix=")"/>
<NumberingLevel NumType="2" Prefix=" " Suffix="."/>
<NumberingLevel NumType="0" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="1" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="1" Prefix="(" Suffix=")"/>
<NumberingLevel NumType="3" Prefix=" " Suffix="."/>
</LC_NumberingLevel>
<LC_OutLineNumberingLevel>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="1" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix="(" NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix="." BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="2" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="2" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix=" " BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix=" " BulletChar="0020" BulletFontName="" ParentNumbering="1" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix=" " BulletChar="0020" BulletFontName="" ParentNumbering="2" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix=" " BulletChar="0020" BulletFontName="" ParentNumbering="3" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix=" " BulletChar="0020" BulletFontName="" ParentNumbering="4" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
<OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="27A2" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="E006" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=")" BulletChar="E004" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle>
</LC_OutLineNumberingLevel>
</Locale>

View File

@ -371,35 +371,35 @@
</ReservedWords> </ReservedWords>
</LC_MISC> </LC_MISC>
<LC_NumberingLevel> <LC_NumberingLevel>
<NumberingLevel NumType="4" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="4" Prefix=" " Suffix="."/> <NumberingLevel NumType="4" Prefix=" " Suffix="."/>
<NumberingLevel NumType="4" Prefix="(" Suffix="."/> <NumberingLevel NumType="4" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="2" Prefix=" " Suffix="."/> <NumberingLevel NumType="2" Prefix=" " Suffix=""/>
<NumberingLevel NumType="3" Prefix=" " Suffix=""/>
<NumberingLevel NumType="48" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="49" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="0" Prefix=" " Suffix=")"/> <NumberingLevel NumType="0" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="1" Prefix=" " Suffix=")"/> <NumberingLevel NumType="1" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="1" Prefix="(" Suffix=")"/>
<NumberingLevel NumType="3" Prefix=" " Suffix="."/>
</LC_NumberingLevel> </LC_NumberingLevel>
<LC_OutLineNumberingLevel> <LC_OutLineNumberingLevel>
<OutlineStyle> <OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="1" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="1" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="49" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle> </OutlineStyle>
<OutlineStyle> <OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="49" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle> </OutlineStyle>
<OutlineStyle> <OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix="(" NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix="(" NumType="49" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="48" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix="." BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="6" Suffix="." BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle> </OutlineStyle>
<OutlineStyle> <OutlineStyle>
@ -411,13 +411,13 @@
</OutlineStyle> </OutlineStyle>
<OutlineStyle> <OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="2" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="2" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="48" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="49" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/>
</OutlineStyle> </OutlineStyle>
<OutlineStyle> <OutlineStyle>
<OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="48" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="2" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="2" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="1" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="1" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/>
<OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/>

View File

@ -0,0 +1,358 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Locale SYSTEM 'locale.dtd'>
<Locale versionDTD="2.0.3" allowUpdateFromCLDR="no" version="1.0">
<LC_INFO>
<Language>
<LangID>tpi</LangID>
<DefaultName>Tok Pisin</DefaultName>
</Language>
<Country>
<CountryID>PG</CountryID>
<DefaultName>Papua New Guinea</DefaultName>
</Country>
</LC_INFO>
<LC_CTYPE unoid="generic">
<Separators>
<DateSeparator>/</DateSeparator>
<ThousandSeparator>,</ThousandSeparator>
<DecimalSeparator>.</DecimalSeparator>
<TimeSeparator>:</TimeSeparator>
<Time100SecSeparator>.</Time100SecSeparator>
<ListSeparator>;</ListSeparator>
<LongDateDayOfWeekSeparator>, </LongDateDayOfWeekSeparator>
<LongDateDaySeparator>, </LongDateDaySeparator>
<LongDateMonthSeparator> </LongDateMonthSeparator>
<LongDateYearSeparator> </LongDateYearSeparator>
</Separators>
<Markers>
<QuotationStart></QuotationStart>
<QuotationEnd></QuotationEnd>
<DoubleQuotationStart></DoubleQuotationStart>
<DoubleQuotationEnd></DoubleQuotationEnd>
</Markers>
<TimeAM>AM</TimeAM>
<TimePM>PM</TimePM>
<MeasurementSystem>metric</MeasurementSystem>
</LC_CTYPE>
<LC_FORMAT replaceFrom="[CURRENCY]" replaceTo="[$K-647]">
<FormatElement msgid="FixedFormatskey1" default="true" type="medium" usage="FIXED_NUMBER" formatindex="0">
<FormatCode>General</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey2" default="true" type="short" usage="FIXED_NUMBER" formatindex="1">
<FormatCode>0</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey3" default="false" type="medium" usage="FIXED_NUMBER" formatindex="2">
<FormatCode>0.00</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey4" default="false" type="short" usage="FIXED_NUMBER" formatindex="3">
<FormatCode>#,##0</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey5" default="false" type="medium" usage="FIXED_NUMBER" formatindex="4">
<FormatCode>#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="FixedFormatskey6" default="false" type="medium" usage="FIXED_NUMBER" formatindex="5">
<FormatCode>#,###.00</FormatCode>
</FormatElement>
<FormatElement msgid="ScientificFormatskey1" default="true" type="medium" usage="SCIENTIFIC_NUMBER" formatindex="6">
<FormatCode>0.00E+00</FormatCode>
</FormatElement>
<FormatElement msgid="ScientificFormatskey2" default="false" type="medium" usage="SCIENTIFIC_NUMBER" formatindex="7">
<FormatCode>0.00E+000</FormatCode>
</FormatElement>
<FormatElement msgid="PercentFormatskey1" default="true" type="short" usage="PERCENT_NUMBER" formatindex="8">
<FormatCode>0%</FormatCode>
</FormatElement>
<FormatElement msgid="PercentFormatskey2" default="true" type="long" usage="PERCENT_NUMBER" formatindex="9">
<FormatCode>0.00%</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey1" default="true" type="short" usage="CURRENCY" formatindex="12">
<FormatCode>[CURRENCY]#,##0;-[CURRENCY]#,##0</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey2" default="false" type="medium" usage="CURRENCY" formatindex="13">
<FormatCode>[CURRENCY]#,##0.00;-[CURRENCY]#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey3" default="false" type="medium" usage="CURRENCY" formatindex="14">
<FormatCode>[CURRENCY]#,##0;[RED]-[CURRENCY]#,##0</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey4" default="true" type="medium" usage="CURRENCY" formatindex="15">
<FormatCode>[CURRENCY]#,##0.00;[RED]-[CURRENCY]#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey5" default="false" type="medium" usage="CURRENCY" formatindex="16">
<FormatCode>CCC#,##0.00</FormatCode>
</FormatElement>
<FormatElement msgid="CurrencyFormatskey6" default="false" type="medium" usage="CURRENCY" formatindex="17">
<FormatCode>[CURRENCY]#,##0.--;[RED]-[CURRENCY]#,##0.--</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey11" default="true" type="short" usage="DATE" formatindex="18">
<FormatCode>D/MM/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey14" default="true" type="long" usage="DATE" formatindex="19">
<FormatCode>NNNNDD, MMMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey6" default="true" type="medium" usage="DATE" formatindex="20">
<FormatCode>DD/MM/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey5" default="false" type="medium" usage="DATE" formatindex="21">
<FormatCode>DD/MM/YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey15" default="false" type="long" usage="DATE" formatindex="22">
<FormatCode>D, MMM YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey16" default="false" type="long" usage="DATE" formatindex="23">
<FormatCode>D, MMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey21" default="false" type="long" usage="DATE" formatindex="24">
<FormatCode>D, MMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey17" default="false" type="long" usage="DATE" formatindex="25">
<FormatCode>D, MMMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey22" default="false" type="long" usage="DATE" formatindex="26">
<FormatCode>D, MMMM YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey10" default="false" type="medium" usage="DATE" formatindex="27">
<FormatCode>NN, DD/MMM/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey18" default="false" type="long" usage="DATE" formatindex="28">
<FormatCode>NN, D, MMM YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey19" default="false" type="long" usage="DATE" formatindex="29">
<FormatCode>NN, D, MMMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey20" default="false" type="long" usage="DATE" formatindex="30">
<FormatCode>NNNND, MMMM YYYY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey12" default="false" type="short" usage="DATE" formatindex="31">
<FormatCode>MM/DD</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey7" default="false" type="medium" usage="DATE" formatindex="32">
<FormatCode>YY-MM-DD</FormatCode>
<DefaultName>ISO 8601</DefaultName>
</FormatElement>
<FormatElement msgid="DateFormatskey8" default="false" type="medium" usage="DATE" formatindex="33">
<FormatCode>YYYY-MM-DD</FormatCode>
<DefaultName>ISO 8601</DefaultName>
</FormatElement>
<FormatElement msgid="DateFormatskey1" default="false" type="medium" usage="DATE" formatindex="34">
<FormatCode>MM/YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey2" default="false" type="medium" usage="DATE" formatindex="35">
<FormatCode>MMM/DD</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey3" default="false" type="medium" usage="DATE" formatindex="36">
<FormatCode>MMMM</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey4" default="false" type="medium" usage="DATE" formatindex="37">
<FormatCode>QQ YY</FormatCode>
</FormatElement>
<FormatElement msgid="DateFormatskey9" default="false" type="medium" usage="DATE" formatindex="38">
<FormatCode>WW</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey1" default="false" type="short" usage="TIME" formatindex="39">
<FormatCode>HH:MM</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey2" default="false" type="medium" usage="TIME" formatindex="40">
<FormatCode>HH:MM:SS</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey3" default="true" type="short" usage="TIME" formatindex="41">
<FormatCode>HH:MM AM/PM</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey4" default="true" type="medium" usage="TIME" formatindex="42">
<FormatCode>HH:MM:SS AM/PM</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey5" default="false" type="medium" usage="TIME" formatindex="43">
<FormatCode>[HH]:MM:SS</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey6" default="false" type="short" usage="TIME" formatindex="44">
<FormatCode>MM:SS.00</FormatCode>
</FormatElement>
<FormatElement msgid="TimeFormatskey7" default="false" type="medium" usage="TIME" formatindex="45">
<FormatCode>[HH]:MM:SS.00</FormatCode>
</FormatElement>
<FormatElement msgid="DateTimeFormatskey1" default="true" type="medium" usage="DATE_TIME" formatindex="46">
<FormatCode>DD/MM/YY HH:MM</FormatCode>
</FormatElement>
<FormatElement msgid="DateTimeFormatskey2" default="false" type="medium" usage="DATE_TIME" formatindex="47">
<FormatCode>DD/MM/YYYY HH:MM:SS AM/PM</FormatCode>
</FormatElement>
</LC_FORMAT>
<LC_COLLATION>
<Collator default="true" unoid="alphanumeric"/>
<CollationOptions>
<TransliterationModules>IGNORE_CASE</TransliterationModules>
</CollationOptions>
</LC_COLLATION>
<LC_SEARCH>
<SearchOptions>
<TransliterationModules>IGNORE_CASE</TransliterationModules>
</SearchOptions>
</LC_SEARCH>
<LC_INDEX>
<IndexKey phonetic="false" default="true" unoid="alphanumeric">A-Z</IndexKey>
<UnicodeScript>0</UnicodeScript>
<UnicodeScript>1</UnicodeScript>
<FollowPageWord>p</FollowPageWord>
<FollowPageWord>pp</FollowPageWord>
</LC_INDEX>
<LC_CALENDAR>
<Calendar unoid="gregorian" default="true">
<DaysOfWeek>
<Day>
<DayID>sun</DayID>
<DefaultAbbrvName>San</DefaultAbbrvName>
<DefaultFullName>Sande</DefaultFullName>
</Day>
<Day>
<DayID>mon</DayID>
<DefaultAbbrvName>Man</DefaultAbbrvName>
<DefaultFullName>Mande</DefaultFullName>
</Day>
<Day>
<DayID>tue</DayID>
<DefaultAbbrvName>Tun</DefaultAbbrvName>
<DefaultFullName>Tunde</DefaultFullName>
</Day>
<Day>
<DayID>wed</DayID>
<DefaultAbbrvName>Tri</DefaultAbbrvName>
<DefaultFullName>Trinde</DefaultFullName>
</Day>
<Day>
<DayID>thu</DayID>
<DefaultAbbrvName>Fon</DefaultAbbrvName>
<DefaultFullName>Fonde</DefaultFullName>
</Day>
<Day>
<DayID>fri</DayID>
<DefaultAbbrvName>Frai</DefaultAbbrvName>
<DefaultFullName>Fraide</DefaultFullName>
</Day>
<Day>
<DayID>sat</DayID>
<DefaultAbbrvName>Sar</DefaultAbbrvName>
<DefaultFullName>Sarere</DefaultFullName>
</Day>
</DaysOfWeek>
<MonthsOfYear>
<Month>
<MonthID>jan</MonthID>
<DefaultAbbrvName>Jan</DefaultAbbrvName>
<DefaultFullName>Janueri</DefaultFullName>
</Month>
<Month>
<MonthID>feb</MonthID>
<DefaultAbbrvName>Feb</DefaultAbbrvName>
<DefaultFullName>Februeri</DefaultFullName>
</Month>
<Month>
<MonthID>mar</MonthID>
<DefaultAbbrvName>Mas</DefaultAbbrvName>
<DefaultFullName>Mas</DefaultFullName>
</Month>
<Month>
<MonthID>apr</MonthID>
<DefaultAbbrvName>Epr</DefaultAbbrvName>
<DefaultFullName>Epril</DefaultFullName>
</Month>
<Month>
<MonthID>may</MonthID>
<DefaultAbbrvName>Me</DefaultAbbrvName>
<DefaultFullName>Me</DefaultFullName>
</Month>
<Month>
<MonthID>jun</MonthID>
<DefaultAbbrvName>Jun</DefaultAbbrvName>
<DefaultFullName>Jun</DefaultFullName>
</Month>
<Month>
<MonthID>jul</MonthID>
<DefaultAbbrvName>Jul</DefaultAbbrvName>
<DefaultFullName>Julai</DefaultFullName>
</Month>
<Month>
<MonthID>aug</MonthID>
<DefaultAbbrvName>Og</DefaultAbbrvName>
<DefaultFullName>Ogas</DefaultFullName>
</Month>
<Month>
<MonthID>sep</MonthID>
<DefaultAbbrvName>Sep</DefaultAbbrvName>
<DefaultFullName>Septemba</DefaultFullName>
</Month>
<Month>
<MonthID>oct</MonthID>
<DefaultAbbrvName>Okt</DefaultAbbrvName>
<DefaultFullName>Oktoba</DefaultFullName>
</Month>
<Month>
<MonthID>nov</MonthID>
<DefaultAbbrvName>Nov</DefaultAbbrvName>
<DefaultFullName>Novemba</DefaultFullName>
</Month>
<Month>
<MonthID>dec</MonthID>
<DefaultAbbrvName>Des</DefaultAbbrvName>
<DefaultFullName>Desemba</DefaultFullName>
</Month>
</MonthsOfYear>
<Eras>
<Era>
<EraID>bc</EraID>
<DefaultAbbrvName>BK</DefaultAbbrvName>
<DefaultFullName>bipo, taim Krais i no kam daun long graun yet</DefaultFullName>
</Era>
<Era>
<EraID>ad</EraID>
<DefaultAbbrvName>AD</DefaultAbbrvName>
<DefaultFullName>taim Krais i kirap bek i kam inap nau</DefaultFullName>
</Era>
</Eras>
<StartDayOfWeek>
<DayID>sun</DayID>
</StartDayOfWeek>
<MinimalDaysInFirstWeek>1</MinimalDaysInFirstWeek>
</Calendar>
</LC_CALENDAR>
<LC_CURRENCY>
<Currency default="true" usedInCompatibleFormatCodes="true">
<CurrencyID>PGK</CurrencyID>
<CurrencySymbol>K</CurrencySymbol>
<BankSymbol>PGK</BankSymbol>
<CurrencyName>Kina</CurrencyName>
<DecimalPlaces>2</DecimalPlaces>
</Currency>
</LC_CURRENCY>
<LC_TRANSLITERATION>
<Transliteration unoid="LOWERCASE_UPPERCASE"/>
<Transliteration unoid="UPPERCASE_LOWERCASE"/>
<Transliteration unoid="IGNORE_CASE"/>
</LC_TRANSLITERATION>
<LC_MISC>
<ReservedWords>
<trueWord>Tru</trueWord>
<falseWord>Giaman</falseWord>
<quarter1Word>Namba Wan Kota</quarter1Word>
<quarter2Word>Namba Tu Kota</quarter2Word>
<quarter3Word>Namba Tri Kota</quarter3Word>
<quarter4Word>Namba Foa Kota</quarter4Word>
<aboveWord>Antap</aboveWord>
<belowWord>Daunbilo</belowWord>
<quarter1Abbreviation>K1</quarter1Abbreviation>
<quarter2Abbreviation>K2</quarter2Abbreviation>
<quarter3Abbreviation>K3</quarter3Abbreviation>
<quarter4Abbreviation>K4</quarter4Abbreviation>
</ReservedWords>
</LC_MISC>
<LC_NumberingLevel>
<NumberingLevel NumType="4" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="4" Prefix=" " Suffix="."/>
<NumberingLevel NumType="4" Prefix="(" Suffix=")"/>
<NumberingLevel NumType="2" Prefix=" " Suffix="."/>
<NumberingLevel NumType="0" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="1" Prefix=" " Suffix=")"/>
<NumberingLevel NumType="1" Prefix="(" Suffix=")"/>
<NumberingLevel NumType="3" Prefix=" " Suffix="."/>
</LC_NumberingLevel>
<LC_OutLineNumberingLevel ref="en_US"/>
</Locale>
<!--Version 1.0 -->

View File

@ -125,11 +125,11 @@
<DefaultName></DefaultName> <DefaultName></DefaultName>
</FormatElement> </FormatElement>
<FormatElement msgid="DateFormatskey6" default="false" type="medium" usage="DATE" formatindex="23"> <FormatElement msgid="DateFormatskey6" default="false" type="medium" usage="DATE" formatindex="23">
<FormatCode>YYYY"年"MMMD""</FormatCode> <FormatCode>YYYY"年"MMMD""</FormatCode>
<DefaultName></DefaultName> <DefaultName></DefaultName>
</FormatElement> </FormatElement>
<FormatElement msgid="DateFormatskey7" default="false" type="medium" usage="DATE" formatindex="24"> <FormatElement msgid="DateFormatskey7" default="false" type="medium" usage="DATE" formatindex="24">
<FormatCode>YYYY "年" MMM D ""</FormatCode> <FormatCode>YYYY "年" MMM D ""</FormatCode>
<DefaultName></DefaultName> <DefaultName></DefaultName>
</FormatElement> </FormatElement>
<FormatElement msgid="DateFormatskey8" default="false" type="long" usage="DATE" formatindex="25"> <FormatElement msgid="DateFormatskey8" default="false" type="long" usage="DATE" formatindex="25">
@ -428,8 +428,8 @@
</LC_TRANSLITERATION> </LC_TRANSLITERATION>
<LC_MISC> <LC_MISC>
<ForbiddenCharacters> <ForbiddenCharacters>
<ForbiddenLineBeginCharacters>:!),.:;?]}¢'"、。〉》」』】〕〗〞︰︱︳﹐、﹒﹔﹕﹖﹗﹚﹜﹞!),.:;?|}︴︶︸︺︼︾﹀﹂﹄﹏、~¢々‖•·ˇˉ―--</ForbiddenLineBeginCharacters> <ForbiddenLineBeginCharacters>:!),.:;?]}¢'"、。〉》」』】〕〗〞︰︱︳﹐、﹒﹔﹕﹖﹗﹚﹜﹞!),.:;?|}︴︶︸︺︼︾﹀﹂﹄﹏、~¢々‖•·ˇˉ―--’”</ForbiddenLineBeginCharacters>
<ForbiddenLineEndCharacters>([{£¥'"‵〈《「『【〔〖([{£¥〝︵︷︹︻︽︿﹁﹃﹙﹛﹝({</ForbiddenLineEndCharacters> <ForbiddenLineEndCharacters>([{£¥'"‵〈《「『【〔〖([{£¥〝︵︷︹︻︽︿﹁﹃﹙﹛﹝({“‘</ForbiddenLineEndCharacters>
<LineBreakHangingCharacters>!,.:;?、。!,.:;?</LineBreakHangingCharacters> <LineBreakHangingCharacters>!,.:;?、。!,.:;?</LineBreakHangingCharacters>
</ForbiddenCharacters> </ForbiddenCharacters>
<ReservedWords> <ReservedWords>

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: localedata.cxx,v $ * $RCSfile: localedata.cxx,v $
* $Revision: 1.59.16.1 $ * $Revision: 1.59.24.4 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -174,6 +174,7 @@ static const struct {
{ "gsc_FR", lcl_DATA_EURO }, { "gsc_FR", lcl_DATA_EURO },
{ "fy_NL", lcl_DATA_EURO }, { "fy_NL", lcl_DATA_EURO },
{ "oc_FR", lcl_DATA_EURO }, { "oc_FR", lcl_DATA_EURO },
{ "mt_MT", lcl_DATA_EURO },
{ "ja_JP", lcl_DATA_OTHERS }, { "ja_JP", lcl_DATA_OTHERS },
{ "ko_KR", lcl_DATA_OTHERS }, { "ko_KR", lcl_DATA_OTHERS },
@ -246,6 +247,9 @@ static const struct {
{ "so_SO", lcl_DATA_OTHERS }, { "so_SO", lcl_DATA_OTHERS },
{ "gug_PY", lcl_DATA_OTHERS }, { "gug_PY", lcl_DATA_OTHERS },
{ "tk_TM", lcl_DATA_OTHERS }, { "tk_TM", lcl_DATA_OTHERS },
{ "my_MM", lcl_DATA_OTHERS },
{ "shs_CA", lcl_DATA_OTHERS },
{ "tpi_PG", lcl_DATA_OTHERS },
}; };
static const sal_Unicode under = sal_Unicode('_'); static const sal_Unicode under = sal_Unicode('_');

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: levdis.cxx,v $ * $RCSfile: levdis.cxx,v $
* $Revision: 1.6 $ * $Revision: 1.6.24.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -121,7 +121,7 @@
} \ } \
} }
sal_Int32 Impl_WLD_StringLen( const sal_Unicode* pStr ) static sal_Int32 Impl_WLD_StringLen( const sal_Unicode* pStr )
{ {
const sal_Unicode* pTempStr = pStr; const sal_Unicode* pTempStr = pStr;
while( *pTempStr ) while( *pTempStr )
@ -131,7 +131,7 @@ sal_Int32 Impl_WLD_StringLen( const sal_Unicode* pStr )
#ifdef erTESTMAT #ifdef erTESTMAT
#define erTESTMATMAX 180 #define erTESTMATMAX 180
static int far npMatrix[erTESTMATMAX][erTESTMATMAX]; // nearly 64K static int npMatrix[erTESTMATMAX][erTESTMATMAX]; // nearly 64K
#endif #endif
// Distanz von String zu Pattern // Distanz von String zu Pattern
@ -366,19 +366,6 @@ int WLevDistance::WLD( const sal_Unicode* cString, sal_Int32 nStringLen )
} }
int WLevDistance::WLD( const ::rtl::OUString& rString )
{
return( WLD( rString.getStr(), rString.getLength() ));
}
int WLevDistance::WLD( const sal_Unicode* cString )
{
return( WLD( cString, Impl_WLD_StringLen(cString) ));
}
// Berechnung von nLimit, nReplP0, nInsQ0, nDelR0, bSplitCount // Berechnung von nLimit, nReplP0, nInsQ0, nDelR0, bSplitCount
// aus Userwerten nOtherX, nShorterY, nLongerZ, bRelaxed // aus Userwerten nOtherX, nShorterY, nLongerZ, bRelaxed
@ -511,34 +498,7 @@ void WLevDistance::InitData( const sal_Unicode* cPattern )
// CTor // CTor
WLevDistance::WLevDistance( const sal_Unicode* cPattern ) : #ifdef erTEST
nPatternLen( Impl_WLD_StringLen(cPattern) ),
aPatMem( nPatternLen + 1 ),
nArrayLen( nPatternLen + 1 ),
aDisMem( nArrayLen ),
nLimit( LEVDISDEFAULTLIMIT ),
nRepP0( LEVDISDEFAULT_P0 ),
nInsQ0( LEVDISDEFAULT_Q0 ),
nDelR0( LEVDISDEFAULT_R0 ),
bSplitCount( false )
{
InitData( cPattern );
}
WLevDistance::WLevDistance( const sal_Unicode* cPattern,
int nOtherX, int nShorterY, int nLongerZ,
bool bRelaxed ) :
nPatternLen( Impl_WLD_StringLen(cPattern) ),
aPatMem( nPatternLen + 1 ),
nArrayLen( nPatternLen + 1 ),
aDisMem( nArrayLen )
{
InitData( cPattern );
CalcLPQR( nOtherX, nShorterY, nLongerZ, bRelaxed );
}
WLevDistance::WLevDistance( const ::rtl::OUString& rPattern ) : WLevDistance::WLevDistance( const ::rtl::OUString& rPattern ) :
nPatternLen( rPattern.getLength() ), nPatternLen( rPattern.getLength() ),
@ -554,6 +514,21 @@ WLevDistance::WLevDistance( const ::rtl::OUString& rPattern ) :
InitData( rPattern.getStr() ); InitData( rPattern.getStr() );
} }
#endif // erTEST
WLevDistance::WLevDistance( const sal_Unicode* cPattern,
int nOtherX, int nShorterY, int nLongerZ,
bool bRelaxed ) :
nPatternLen( Impl_WLD_StringLen(cPattern) ),
aPatMem( nPatternLen + 1 ),
nArrayLen( nPatternLen + 1 ),
aDisMem( nArrayLen )
{
InitData( cPattern );
CalcLPQR( nOtherX, nShorterY, nLongerZ, bRelaxed );
}
// CopyCTor // CopyCTor
WLevDistance::WLevDistance( const WLevDistance& rWLD ) : WLevDistance::WLevDistance( const WLevDistance& rWLD ) :
@ -597,17 +572,19 @@ typedef char MAXSTRING [LINESIZE+1];
#ifdef erTESTMAT #ifdef erTESTMAT
void WLevDistance::ShowMatrix( const char* cString ) void WLevDistance::ShowMatrix( const sal_Unicode* cString )
{ {
sal_Int32 r, c, l = strlen(cString); sal_Int32 r, c, l = Impl_WLD_StringLen(cString);
printf(" | "); printf(" | ");
for ( c=0; c<nPatternLen; c++ ) for ( c=0; c<nPatternLen; c++ )
#error Error: conversion from sal_Unicode to char needed!
printf( " %c ", cpPattern[c] ); printf( " %c ", cpPattern[c] );
printf("\n---+---"); printf("\n---+---");
for ( c=0; c<nPatternLen; c++ ) for ( c=0; c<nPatternLen; c++ )
printf( "---" ); printf( "---" );
for ( r=0; r<=l && r < erTESTMATMAX; r++ ) for ( r=0; r<=l && r < erTESTMATMAX; r++ )
{ {
#error Error: conversion from sal_Unicode to char needed!
printf( "\n %c |", ( r==0 ? ' ' : cString[r-1] ) ); printf( "\n %c |", ( r==0 ? ' ' : cString[r-1] ) );
for ( c=0; c<=nPatternLen && c < erTESTMATMAX; c++ ) for ( c=0; c<=nPatternLen && c < erTESTMATMAX; c++ )
printf( "%2d ", npMatrix[r][c] ); printf( "%2d ", npMatrix[r][c] );
@ -623,18 +600,20 @@ MAXSTRING cDelim = "\t, ;(){}[]<>&=+-/%!|.\\'\"~";
void WLevDistance::ShowTest() void WLevDistance::ShowTest()
{ {
printf(" \n"); printf(" \n");
#error Error: conversion from sal_Unicode to char needed!
printf(" a *cpPattern . . . . : %s\n", cpPattern); printf(" a *cpPattern . . . . : %s\n", cpPattern);
printf(" b *bpPatIsWild . . . : "); printf(" b *bpPatIsWild . . . : ");
for ( sal_Int32 i=0; i<nPatternLen; i++ ) for ( sal_Int32 i=0; i<nPatternLen; i++ )
printf("%d", bpPatIsWild[i]); printf("%d", bpPatIsWild[i]);
printf("\n"); printf("\n");
printf(" c nPatternLen . . . : %d\n", nPatternLen); printf(" c nPatternLen . . . : %d\n", (int)nPatternLen);
printf(" d nStars . . . . . . : %d\n", nStars); printf(" d nStars . . . . . . : %d\n", nStars);
printf(" e nLimit . . . . . . : %d\n", nLimit); printf(" e nLimit . . . . . . : %d\n", nLimit);
printf(" f nRepP0 (Ersetzen) : %d\n", nRepP0); printf(" f nRepP0 (Ersetzen) : %d\n", nRepP0);
printf(" g nInsQ0 (Einfuegen) : %d\n", nInsQ0); printf(" g nInsQ0 (Einfuegen) : %d\n", nInsQ0);
printf(" h nDelR0 (Loeschen) : %d\n", nDelR0); printf(" h nDelR0 (Loeschen) : %d\n", nDelR0);
printf(" i bSplitCount . . . : %d\n", bSplitCount); printf(" i bSplitCount . . . : %d\n", bSplitCount);
#error Error: conversion from sal_Unicode to char needed!
printf(" j cDelim . . . . . . : '%s'\n", cDelim); printf(" j cDelim . . . . . . : '%s'\n", cDelim);
printf(" ~\n"); printf(" ~\n");
} }
@ -650,7 +629,7 @@ inline bool IsDelim( char c )
MAXSTRING cString, cLine, cIgString; MAXSTRING cString, cLine, cIgString;
main( int argc, char **argv ) int main( int argc, char **argv )
{ {
int nLim, nP0, nQ0, nR0, nX, nY, nZ; int nLim, nP0, nQ0, nR0, nX, nY, nZ;
int args = 0; int args = 0;
@ -674,7 +653,7 @@ main( int argc, char **argv )
{ {
IgnoreCase = true; IgnoreCase = true;
char* cp = argv[args+1]; char* cp = argv[args+1];
while ( *cp = tolower( *cp ) ) while ( (*cp = tolower( *cp )) != 0 )
cp++; cp++;
break; break;
} }
@ -731,6 +710,7 @@ main( int argc, char **argv )
} }
if ( Direct ) if ( Direct )
{ {
#error Error: conversion from char to OUString needed!
pTest = new WLevDistance( argv[args+1] ); pTest = new WLevDistance( argv[args+1] );
#ifdef erTESTDEFAULT #ifdef erTESTDEFAULT
pTest->ShowTest(); pTest->ShowTest();
@ -742,6 +722,7 @@ main( int argc, char **argv )
} }
else else
{ {
#error Error: conversion from char to sal_Unicode needed!
pTest = new WLevDistance( argv[args+1], nX, nY, nZ, !bStrict ); pTest = new WLevDistance( argv[args+1], nX, nY, nZ, !bStrict );
#ifdef erTESTCCTOR #ifdef erTESTCCTOR
WLevDistance aTmp( *pTest ); WLevDistance aTmp( *pTest );
@ -753,7 +734,7 @@ main( int argc, char **argv )
do do
{ {
char* cp1, *cp2; char* cp1, *cp2;
static ULONG nLine = 0; static long unsigned int nLine = 0;
cp1 = cLine; cp1 = cLine;
cin.getline( cLine, LINESIZE ) ; cin.getline( cLine, LINESIZE ) ;
nLine++; nLine++;
@ -772,21 +753,24 @@ main( int argc, char **argv )
int ret; int ret;
if ( IgnoreCase ) if ( IgnoreCase )
{ {
char* cp1 = cString; char* cpi1 = cString;
char* cp2 = cIgString; char* cpi2 = cIgString;
while ( *cp1 ) while ( *cpi1 )
*cp2++ = tolower( *cp1++ ); *cpi2++ = tolower( *cpi1++ );
*cp2 = '\0'; *cpi2 = '\0';
#error Error: conversion from char to OUString / sal_Unicode,length needed!
ret = pTest->WLD( cIgString ); ret = pTest->WLD( cIgString );
} }
else else
#error Error: conversion from char to OUString / sal_Unicode,length needed!
ret = pTest->WLD( cString ); ret = pTest->WLD( cString );
#ifdef erTESTMAT #ifdef erTESTMAT
printf("\n# %3d : %s\n", ret, cString); printf("\n# %3d : %s\n", ret, cString);
#error Error: conversion from char to sal_Unicode needed!
pTest->ShowMatrix( cString ); pTest->ShowMatrix( cString );
#else #else
if ( ret <= nLim ) if ( ret <= nLim )
printf("# %3d : %s\t(line %ld)\t%s\n", ret, cString, nLine, cLine); printf("# %3d : %s\t(line %lu)\t%s\n", ret, cString, nLine, cLine);
#endif #endif
} }
} }

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: levdis.hxx,v $ * $RCSfile: levdis.hxx,v $
* $Revision: 1.4 $ * $Revision: 1.4.24.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -147,10 +147,12 @@ class WLevDistance
int KGV( int a, int b ); // Kleinstes Gemeinsames Vielfaches int KGV( int a, int b ); // Kleinstes Gemeinsames Vielfaches
public: public:
#ifdef erTEST
// CToren fuer direktes Setzen der Gewichtung mit Set...() // CToren fuer direktes Setzen der Gewichtung mit Set...()
// im CTor werden die Defaultwerte fuer Limit/Rep/Ins/Del gesetzt // im CTor werden die Defaultwerte fuer Limit/Rep/Ins/Del gesetzt
WLevDistance( const sal_Unicode* cPattern ); explicit WLevDistance( const ::rtl::OUString& rPattern );
WLevDistance( const ::rtl::OUString& rPattern ); #endif
// CToren mit Userangaben, danach mit GetLimit() Limit holen // CToren mit Userangaben, danach mit GetLimit() Limit holen
// interner Aufruf von CalcLPQR() // interner Aufruf von CalcLPQR()
@ -162,9 +164,7 @@ public:
~WLevDistance(); ~WLevDistance();
// Berechnung der Levenshtein-Distanz von String zu Pattern // Berechnung der Levenshtein-Distanz von String zu Pattern
int WLD( const sal_Unicode* cString, sal_Int32 nStringLen ); // prefered int WLD( const sal_Unicode* cString, sal_Int32 nStringLen );
int WLD( const sal_Unicode* cString );
int WLD( const ::rtl::OUString& rString );
// Berechnung der Gewichtung aus Userangaben, return nLimit // Berechnung der Gewichtung aus Userangaben, return nLimit
int CalcLPQR( int nOtherX, int nShorterY, int nLongerZ, int CalcLPQR( int nOtherX, int nShorterY, int nLongerZ,
@ -187,7 +187,7 @@ public:
#ifdef erTEST #ifdef erTEST
void ShowTest(); void ShowTest();
#ifdef erTESTMAT #ifdef erTESTMAT
void ShowMatrix( const char* cString ); void ShowMatrix( const sal_Unicode* cString );
#endif #endif
#endif #endif

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: transliteration_caseignore.cxx,v $ * $RCSfile: transliteration_caseignore.cxx,v $
* $Revision: 1.11 $ * $Revision: 1.11.24.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -52,6 +52,11 @@ Transliteration_caseignore::Transliteration_caseignore()
implementationName = "com.sun.star.i18n.Transliteration.Transliteration_caseignore"; implementationName = "com.sun.star.i18n.Transliteration.Transliteration_caseignore";
} }
#if 0
/* NOTE: We had this, derived from Transliteration_caseignore, but it was
* unused code. Deactivated with #i89580# but left for reference in case
* MappingTypeSimpleFolding would be needed at some time.
*/
Transliteration_simplecaseignore::Transliteration_simplecaseignore() Transliteration_simplecaseignore::Transliteration_simplecaseignore()
{ {
nMappingType = MappingTypeSimpleFolding; nMappingType = MappingTypeSimpleFolding;
@ -59,6 +64,7 @@ Transliteration_simplecaseignore::Transliteration_simplecaseignore()
transliterationName = "simple case ignore (generic)"; transliterationName = "simple case ignore (generic)";
implementationName = "com.sun.star.i18n.Transliteration.Transliteration_simplecaseignore"; implementationName = "com.sun.star.i18n.Transliteration.Transliteration_simplecaseignore";
} }
#endif
void SAL_CALL void SAL_CALL
Transliteration_caseignore::loadModule( TransliterationModules modName, const Locale& rLocale ) Transliteration_caseignore::loadModule( TransliterationModules modName, const Locale& rLocale )

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: ctloptions.cxx,v $ * $RCSfile: ctloptions.cxx,v $
* $Revision: 1.18 $ * $Revision: 1.18.140.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -39,7 +39,7 @@
#include <svtools/ctloptions.hxx> #include <svtools/ctloptions.hxx>
#include <svtools/languageoptions.hxx> #include <svtools/languageoptions.hxx>
#include <i18npool/lang.h> #include <i18npool/mslangid.hxx>
#include <unotools/configitem.hxx> #include <unotools/configitem.hxx>
#include <tools/debug.hxx> #include <tools/debug.hxx>
#include <com/sun/star/uno/Any.h> #include <com/sun/star/uno/Any.h>
@ -317,10 +317,8 @@ void SvtCTLOptions_Impl::Load()
sal_uInt16 nLanguage = Application::GetSettings().GetLanguage(); sal_uInt16 nLanguage = Application::GetSettings().GetLanguage();
//enable sequence checking for the appropriate languages //enable sequence checking for the appropriate languages
m_bCTLSequenceChecking = m_bCTLRestricted = m_bCTLTypeAndReplace = m_bCTLSequenceChecking = m_bCTLRestricted = m_bCTLTypeAndReplace =
( LANGUAGE_KHMER == nLanguage || LANGUAGE_KHMER == eSystemLanguage || (MsLangId::needsSequenceChecking( nLanguage) ||
LANGUAGE_THAI == nLanguage || LANGUAGE_THAI == eSystemLanguage || MsLangId::needsSequenceChecking( eSystemLanguage));
LANGUAGE_VIETNAMESE == nLanguage || LANGUAGE_VIETNAMESE == eSystemLanguage ||
LANGUAGE_LAO == nLanguage || LANGUAGE_LAO == eSystemLanguage );
Commit(); Commit();
} }
m_bIsLoaded = sal_True; m_bIsLoaded = sal_True;

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: langtab.cxx,v $ * $RCSfile: langtab.cxx,v $
* $Revision: 1.3 $ * $Revision: 1.3.140.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -37,6 +37,7 @@
#include <tools/debug.hxx> #include <tools/debug.hxx>
#include <i18npool/lang.h> #include <i18npool/lang.h>
#include <i18npool/mslangid.hxx>
#include <svtools/svtools.hrc> #include <svtools/svtools.hrc>
#include <svtools/svtdata.hxx> #include <svtools/svtdata.hxx>
@ -59,9 +60,7 @@ SvtLanguageTable::~SvtLanguageTable()
const String& SvtLanguageTable::GetString( const LanguageType eType ) const const String& SvtLanguageTable::GetString( const LanguageType eType ) const
{ {
// no_NO is an alias for nb_NO LanguageType eLang = MsLangId::getReplacementForObsoleteLanguage( eType);
LanguageType eLang = (eType == LANGUAGE_NORWEGIAN ?
LANGUAGE_NORWEGIAN_BOKMAL : eType);
sal_uInt32 nPos = FindIndex( eLang ); sal_uInt32 nPos = FindIndex( eLang );
if ( RESARRAY_INDEX_NOTFOUND != nPos && nPos < Count() ) if ( RESARRAY_INDEX_NOTFOUND != nPos && nPos < Count() )

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: langtab.src,v $ * $RCSfile: langtab.src,v $
* $Revision: 1.6 $ * $Revision: 1.6.140.6 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -46,22 +46,32 @@ StringArray STR_ARR_SVT_LANGUAGE_TABLE
< "Default" ; LANGUAGE_SYSTEM ; > ; < "Default" ; LANGUAGE_SYSTEM ; > ;
< "Afrikaans (South Africa)" ; LANGUAGE_AFRIKAANS ; > ; < "Afrikaans (South Africa)" ; LANGUAGE_AFRIKAANS ; > ;
< "Albanian" ; LANGUAGE_ALBANIAN ; > ; < "Albanian" ; LANGUAGE_ALBANIAN ; > ;
< "Arabic (Iraq)" ; LANGUAGE_ARABIC_IRAQ ; > ; < "Arabic" ; LANGUAGE_ARABIC_PRIMARY_ONLY ; > ;
< "Arabic (Egypt)" ; LANGUAGE_ARABIC_EGYPT ; > ; < "Arabic (Algeria)" ; LANGUAGE_ARABIC_ALGERIA ; > ;
< "Arabic (Libya)" ; LANGUAGE_ARABIC_LIBYA ; > ;
< "Arabic (Algerian)" ; LANGUAGE_ARABIC_ALGERIA ; > ;
< "Arabic (Morocco)" ; LANGUAGE_ARABIC_MOROCCO ; > ;
< "Arabic (Tunisia)" ; LANGUAGE_ARABIC_TUNISIA ; > ;
< "Arabic (Oman)" ; LANGUAGE_ARABIC_OMAN ; > ;
< "Arabic (Yemen)" ; LANGUAGE_ARABIC_YEMEN ; > ;
< "Arabic (Syria)" ; LANGUAGE_ARABIC_SYRIA ; > ;
< "Arabic (Jordan)" ; LANGUAGE_ARABIC_JORDAN ; > ;
< "Arabic (Lebanon)" ; LANGUAGE_ARABIC_LEBANON ; > ;
< "Arabic (Kuwait)" ; LANGUAGE_ARABIC_KUWAIT ; > ;
< "Arabic (UAE)" ; LANGUAGE_ARABIC_UAE ; > ;
< "Arabic (Bahrain)" ; LANGUAGE_ARABIC_BAHRAIN ; > ; < "Arabic (Bahrain)" ; LANGUAGE_ARABIC_BAHRAIN ; > ;
< "Arabic (Chad)" ; LANGUAGE_USER_ARABIC_CHAD ; > ;
< "Arabic (Comoros)" ; LANGUAGE_USER_ARABIC_COMOROS ; > ;
< "Arabic (Djibouti)" ; LANGUAGE_USER_ARABIC_DJIBOUTI ; > ;
< "Arabic (Egypt)" ; LANGUAGE_ARABIC_EGYPT ; > ;
< "Arabic (Eritrea)" ; LANGUAGE_USER_ARABIC_ERITREA ; > ;
< "Arabic (Iraq)" ; LANGUAGE_ARABIC_IRAQ ; > ;
< "Arabic (Israel)" ; LANGUAGE_USER_ARABIC_ISRAEL ; > ;
< "Arabic (Jordan)" ; LANGUAGE_ARABIC_JORDAN ; > ;
< "Arabic (Kuwait)" ; LANGUAGE_ARABIC_KUWAIT ; > ;
< "Arabic (Lebanon)" ; LANGUAGE_ARABIC_LEBANON ; > ;
< "Arabic (Libya)" ; LANGUAGE_ARABIC_LIBYA ; > ;
< "Arabic (Mauritania)" ; LANGUAGE_USER_ARABIC_MAURITANIA ; > ;
< "Arabic (Morocco)" ; LANGUAGE_ARABIC_MOROCCO ; > ;
< "Arabic (Oman)" ; LANGUAGE_ARABIC_OMAN ; > ;
< "Arabic (Palestine)" ; LANGUAGE_USER_ARABIC_PALESTINE ; > ;
< "Arabic (Qatar)" ; LANGUAGE_ARABIC_QATAR ; > ; < "Arabic (Qatar)" ; LANGUAGE_ARABIC_QATAR ; > ;
< "Arabic (Saudi Arabia)" ; LANGUAGE_ARABIC_SAUDI_ARABIA ; > ; < "Arabic (Saudi Arabia)" ; LANGUAGE_ARABIC_SAUDI_ARABIA ; > ;
< "Arabic (Somalia)" ; LANGUAGE_USER_ARABIC_SOMALIA ; > ;
< "Arabic (Sudan)" ; LANGUAGE_USER_ARABIC_SUDAN ; > ;
< "Arabic (Syria)" ; LANGUAGE_ARABIC_SYRIA ; > ;
< "Arabic (Tunisia)" ; LANGUAGE_ARABIC_TUNISIA ; > ;
< "Arabic (UAE)" ; LANGUAGE_ARABIC_UAE ; > ;
< "Arabic (Yemen)" ; LANGUAGE_ARABIC_YEMEN ; > ;
< "Armenian" ; LANGUAGE_ARMENIAN ; > ; < "Armenian" ; LANGUAGE_ARMENIAN ; > ;
< "Assami" ; LANGUAGE_ASSAMESE ; > ; < "Assami" ; LANGUAGE_ASSAMESE ; > ;
< "Azerbaijani Latin" ; LANGUAGE_AZERI_LATIN ; > ; < "Azerbaijani Latin" ; LANGUAGE_AZERI_LATIN ; > ;
@ -159,7 +169,6 @@ StringArray STR_ARR_SVT_LANGUAGE_TABLE
< "Slovenian" ; LANGUAGE_SLOVENIAN ; > ; < "Slovenian" ; LANGUAGE_SLOVENIAN ; > ;
< "Spanish (Spain)" ; LANGUAGE_SPANISH ; > ; < "Spanish (Spain)" ; LANGUAGE_SPANISH ; > ;
< "Spanish (Mexico)" ; LANGUAGE_SPANISH_MEXICAN ; > ; < "Spanish (Mexico)" ; LANGUAGE_SPANISH_MEXICAN ; > ;
< "Spanish, Modern (Spain)" ; LANGUAGE_SPANISH_MODERN ; > ;
< "Spanish (Guatemala)" ; LANGUAGE_SPANISH_GUATEMALA ; > ; < "Spanish (Guatemala)" ; LANGUAGE_SPANISH_GUATEMALA ; > ;
< "Spanish (Costa Rica)" ; LANGUAGE_SPANISH_COSTARICA ; > ; < "Spanish (Costa Rica)" ; LANGUAGE_SPANISH_COSTARICA ; > ;
< "Spanish (Panama)" ; LANGUAGE_SPANISH_PANAMA ; > ; < "Spanish (Panama)" ; LANGUAGE_SPANISH_PANAMA ; > ;
@ -290,6 +299,9 @@ StringArray STR_ARR_SVT_LANGUAGE_TABLE
< "Santali" ; LANGUAGE_USER_SANTALI_INDIA ; > ; < "Santali" ; LANGUAGE_USER_SANTALI_INDIA ; > ;
< "Tetun (Timor-Leste)" ; LANGUAGE_USER_TETUN_TIMOR_LESTE ; > ; < "Tetun (Timor-Leste)" ; LANGUAGE_USER_TETUN_TIMOR_LESTE ; > ;
< "Turkmen" ; LANGUAGE_TURKMEN ; > ; < "Turkmen" ; LANGUAGE_TURKMEN ; > ;
< "Maltese" ; LANGUAGE_MALTESE ; > ;
< "Tok Pisin" ; LANGUAGE_USER_TOK_PISIN ; > ;
< "Shuswap" ; LANGUAGE_USER_SHUSWAP ; > ;
}; };
}; };

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: zforfind.cxx,v $ * $RCSfile: zforfind.cxx,v $
* $Revision: 1.51 $ * $Revision: 1.51.96.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -1385,13 +1385,14 @@ input for the following reasons:
{ "ko", "KR", "hanja_yoil" }, { "ko", "KR", "hanja_yoil" },
{ "th", "TH", "buddhist" }, { "th", "TH", "buddhist" },
{ "zh", "TW", "ROC" }, { "zh", "TW", "ROC" },
0 {0,0,0}
}; };
lang::Locale aLocale; lang::Locale aLocale;
sal_Bool bValid; sal_Bool bValid;
sal_Int16 nDay, nMonth, nYear, nHour, nMinute, nSecond; sal_Int16 nDay, nMyMonth, nYear, nHour, nMinute, nSecond;
sal_Int16 nDaySet, nMonthSet, nYearSet, nHourSet, nMinuteSet, nSecondSet; sal_Int16 nDaySet, nMonthSet, nYearSet, nHourSet, nMinuteSet, nSecondSet;
sal_Int16 nZO, nDST1, nDST2, nDST; sal_Int16 nZO, nDST1, nDST2, nDST, nZOmillis, nDST1millis, nDST2millis, nDSTmillis;
sal_Int32 nZoneInMillis, nDST1InMillis, nDST2InMillis;
uno::Reference< lang::XMultiServiceFactory > xSMgr = uno::Reference< lang::XMultiServiceFactory > xSMgr =
::comphelper::getProcessServiceFactory(); ::comphelper::getProcessServiceFactory();
uno::Reference< ::com::sun::star::i18n::XExtendedCalendar > xCal( uno::Reference< ::com::sun::star::i18n::XExtendedCalendar > xCal(
@ -1407,13 +1408,22 @@ input for the following reasons:
aLocale ); aLocale );
double nDateTime = 0.0; // 1-Jan-1970 00:00:00 double nDateTime = 0.0; // 1-Jan-1970 00:00:00
nZO = xCal->getValue( i18n::CalendarFieldIndex::ZONE_OFFSET ); nZO = xCal->getValue( i18n::CalendarFieldIndex::ZONE_OFFSET );
nZOmillis = xCal->getValue( i18n::CalendarFieldIndex::ZONE_OFFSET_SECOND_MILLIS );
nZoneInMillis = static_cast<sal_Int32>(nZO) * 60000 +
(nZO < 0 ? -1 : 1) * static_cast<sal_uInt16>(nZOmillis);
nDST1 = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET ); nDST1 = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET );
nDateTime -= (double)(nZO + nDST1) / 60.0 / 24.0; nDST1millis = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET_SECOND_MILLIS );
nDST1InMillis = static_cast<sal_Int32>(nDST1) * 60000 +
(nDST1 < 0 ? -1 : 1) * static_cast<sal_uInt16>(nDST1millis);
nDateTime -= (double)(nZoneInMillis + nDST1InMillis) / 1000.0 / 60.0 / 60.0 / 24.0;
xCal->setDateTime( nDateTime ); xCal->setDateTime( nDateTime );
nDST2 = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET ); nDST2 = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET );
if ( nDST1 != nDST2 ) nDST2millis = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET_SECOND_MILLIS );
nDST2InMillis = static_cast<sal_Int32>(nDST2) * 60000 +
(nDST2 < 0 ? -1 : 1) * static_cast<sal_uInt16>(nDST2millis);
if ( nDST1InMillis != nDST2InMillis )
{ {
nDateTime = 0.0 - (double)(nZO + nDST2) / 60.0 / 24.0; nDateTime = 0.0 - (double)(nZoneInMillis + nDST2InMillis) / 1000.0 / 60.0 / 60.0 / 24.0;
xCal->setDateTime( nDateTime ); xCal->setDateTime( nDateTime );
} }
nDaySet = xCal->getValue( i18n::CalendarFieldIndex::DAY_OF_MONTH ); nDaySet = xCal->getValue( i18n::CalendarFieldIndex::DAY_OF_MONTH );
@ -1423,7 +1433,9 @@ input for the following reasons:
nMinuteSet = xCal->getValue( i18n::CalendarFieldIndex::MINUTE ); nMinuteSet = xCal->getValue( i18n::CalendarFieldIndex::MINUTE );
nSecondSet = xCal->getValue( i18n::CalendarFieldIndex::SECOND ); nSecondSet = xCal->getValue( i18n::CalendarFieldIndex::SECOND );
nZO = xCal->getValue( i18n::CalendarFieldIndex::ZONE_OFFSET ); nZO = xCal->getValue( i18n::CalendarFieldIndex::ZONE_OFFSET );
nZOmillis = xCal->getValue( i18n::CalendarFieldIndex::ZONE_OFFSET_SECOND_MILLIS );
nDST = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET ); nDST = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET );
nDSTmillis = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET_SECOND_MILLIS );
xCal->setValue( i18n::CalendarFieldIndex::DAY_OF_MONTH, nDaySet ); xCal->setValue( i18n::CalendarFieldIndex::DAY_OF_MONTH, nDaySet );
xCal->setValue( i18n::CalendarFieldIndex::MONTH, nMonthSet ); xCal->setValue( i18n::CalendarFieldIndex::MONTH, nMonthSet );
xCal->setValue( i18n::CalendarFieldIndex::YEAR, nYearSet ); xCal->setValue( i18n::CalendarFieldIndex::YEAR, nYearSet );
@ -1432,12 +1444,12 @@ input for the following reasons:
xCal->setValue( i18n::CalendarFieldIndex::SECOND, nSecondSet ); xCal->setValue( i18n::CalendarFieldIndex::SECOND, nSecondSet );
bValid = xCal->isValid(); bValid = xCal->isValid();
nDay = xCal->getValue( i18n::CalendarFieldIndex::DAY_OF_MONTH ); nDay = xCal->getValue( i18n::CalendarFieldIndex::DAY_OF_MONTH );
nMonth = xCal->getValue( i18n::CalendarFieldIndex::MONTH ); nMyMonth= xCal->getValue( i18n::CalendarFieldIndex::MONTH );
nYear = xCal->getValue( i18n::CalendarFieldIndex::YEAR ); nYear = xCal->getValue( i18n::CalendarFieldIndex::YEAR );
nHour = xCal->getValue( i18n::CalendarFieldIndex::HOUR ); nHour = xCal->getValue( i18n::CalendarFieldIndex::HOUR );
nMinute = xCal->getValue( i18n::CalendarFieldIndex::MINUTE ); nMinute = xCal->getValue( i18n::CalendarFieldIndex::MINUTE );
nSecond = xCal->getValue( i18n::CalendarFieldIndex::SECOND ); nSecond = xCal->getValue( i18n::CalendarFieldIndex::SECOND );
bValid = bValid && nDay == nDaySet && nMonth == nMonthSet && nYear == bValid = bValid && nDay == nDaySet && nMyMonth == nMonthSet && nYear ==
nYearSet && nHour == nHourSet && nMinute == nMinuteSet && nSecond nYearSet && nHour == nHourSet && nMinute == nMinuteSet && nSecond
== nSecondSet; == nSecondSet;
} }

View File

@ -2163,15 +2163,31 @@ void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, BOOL bLoadingSO
// must be appended, not inserted! // must be appended, not inserted!
USHORT nNewExtended = ZF_STANDARD_NEWEXTENDED; USHORT nNewExtended = ZF_STANDARD_NEWEXTENDED;
// Number
uno::Sequence< i18n::NumberFormatCode > aFormatSeq
= aNumberFormatCode.getAllFormatCode( i18n::KNumberFormatUsage::FIXED_NUMBER );
ImpAdjustFormatCodeDefault( aFormatSeq.getArray(), aFormatSeq.getLength() );
// General // General
aFormatCode = pFormatScanner->GetStandardName(); nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_NUMBER_STANDARD );
SvNumberformat* pStdFormat = new SvNumberformat( aFormatCode, SvNumberformat* pStdFormat = ImpInsertFormat( aFormatSeq[nIdx],
pFormatScanner, pStringScanner, nCheckPos, ActLnge ); CLOffset + SetIndexTable( NF_NUMBER_STANDARD, ZF_STANDARD ));
if (pStdFormat)
{
// This is _the_ standard format.
if (LocaleDataWrapper::areChecksEnabled() &&
pStdFormat->GetType() != NUMBERFORMAT_NUMBER)
{
String aMsg( RTL_CONSTASCII_USTRINGPARAM(
"SvNumberFormatter::ImpGenerateFormats: General format not NUMBER"));
LocaleDataWrapper::outputCheckMessage(
xLocaleData->appendLocaleInfo( aMsg));
}
pStdFormat->SetType( NUMBERFORMAT_NUMBER ); pStdFormat->SetType( NUMBERFORMAT_NUMBER );
pStdFormat->SetStandard(); pStdFormat->SetStandard();
if ( !aFTable.Insert( pStdFormat->SetLastInsertKey( SV_MAX_ANZ_STANDARD_FORMATE );
CLOffset + SetIndexTable( NF_NUMBER_STANDARD, ZF_STANDARD ), }
pStdFormat ) ) else
{ {
if (LocaleDataWrapper::areChecksEnabled()) if (LocaleDataWrapper::areChecksEnabled())
{ {
@ -2180,11 +2196,7 @@ void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, BOOL bLoadingSO
LocaleDataWrapper::outputCheckMessage( LocaleDataWrapper::outputCheckMessage(
xLocaleData->appendLocaleInfo( aMsg)); xLocaleData->appendLocaleInfo( aMsg));
} }
delete pStdFormat;
pStdFormat = NULL;
} }
else
pStdFormat->SetLastInsertKey( SV_MAX_ANZ_STANDARD_FORMATE );
// Boolean // Boolean
aFormatCode = pFormatScanner->GetBooleanString(); aFormatCode = pFormatScanner->GetBooleanString();
@ -2210,11 +2222,6 @@ void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, BOOL bLoadingSO
// Number
uno::Sequence< i18n::NumberFormatCode > aFormatSeq
= aNumberFormatCode.getAllFormatCode( i18n::KNumberFormatUsage::FIXED_NUMBER );
ImpAdjustFormatCodeDefault( aFormatSeq.getArray(), aFormatSeq.getLength() );
// 0 // 0
nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_NUMBER_INT ); nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_NUMBER_INT );
ImpInsertFormat( aFormatSeq[nIdx], ImpInsertFormat( aFormatSeq[nIdx],

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: zformat.cxx,v $ * $RCSfile: zformat.cxx,v $
* $Revision: 1.78.168.1 $ * $Revision: 1.78.138.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -1816,6 +1816,7 @@ void SvNumberformat::ImpGetOutputStandard(double& fNumber, String& OutString)
OutString.GetTokenCount('0') == OutString.Len()) OutString.GetTokenCount('0') == OutString.Len())
OutString.EraseLeadingChars('-'); // nicht -0 OutString.EraseLeadingChars('-'); // nicht -0
} }
ImpTransliterate( OutString, NumFor[0].GetNatNum() );
return; return;
} }

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: zforscan.cxx,v $ * $RCSfile: zforscan.cxx,v $
* $Revision: 1.49 $ * $Revision: 1.49.140.2 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -188,6 +188,50 @@ void ImpSvNumberformatScan::InitKeywords() const
} }
/** Extract the name of General, Standard, Whatever, ignoring leading modifiers
such as [NatNum1]. */
static String lcl_extractStandardGeneralName( const ::rtl::OUString & rCode )
{
String aStr;
const sal_Unicode* p = rCode.getStr();
const sal_Unicode* const pStop = p + rCode.getLength();
const sal_Unicode* pBeg = p; // name begins here
bool bMod = false;
bool bDone = false;
while (p < pStop && !bDone)
{
switch (*p)
{
case '[':
bMod = true;
break;
case ']':
if (bMod)
{
bMod = false;
pBeg = p+1;
}
// else: would be a locale data error, easily to be spotted in
// UI dialog
break;
case ';':
if (!bMod)
{
bDone = true;
--p; // put back, increment by one follows
}
break;
}
++p;
if (bMod)
pBeg = p;
}
if (pBeg < p)
aStr = rCode.copy( pBeg - rCode.getStr(), p - pBeg);
return aStr;
}
void ImpSvNumberformatScan::SetDependentKeywords() void ImpSvNumberformatScan::SetDependentKeywords()
{ {
using namespace ::com::sun::star; using namespace ::com::sun::star;
@ -202,7 +246,7 @@ void ImpSvNumberformatScan::SetDependentKeywords()
NumberFormatCodeWrapper aNumberFormatCode( pFormatter->GetServiceManager(), aLoadedLocale ); NumberFormatCodeWrapper aNumberFormatCode( pFormatter->GetServiceManager(), aLoadedLocale );
i18n::NumberFormatCode aFormat = aNumberFormatCode.getFormatCode( NF_NUMBER_STANDARD ); i18n::NumberFormatCode aFormat = aNumberFormatCode.getFormatCode( NF_NUMBER_STANDARD );
sNameStandardFormat = aFormat.Code; sNameStandardFormat = lcl_extractStandardGeneralName( aFormat.Code);
sKeyword[NF_KEY_GENERAL] = pCharClass->upper( sNameStandardFormat ); sKeyword[NF_KEY_GENERAL] = pCharClass->upper( sNameStandardFormat );
// preset new calendar keywords // preset new calendar keywords
@ -328,9 +372,9 @@ void ImpSvNumberformatScan::SetDependentKeywords()
case LANGUAGE_FRENCH_MONACO : case LANGUAGE_FRENCH_MONACO :
case LANGUAGE_PORTUGUESE : case LANGUAGE_PORTUGUESE :
case LANGUAGE_PORTUGUESE_BRAZILIAN : case LANGUAGE_PORTUGUESE_BRAZILIAN :
case LANGUAGE_SPANISH :
case LANGUAGE_SPANISH_MEXICAN :
case LANGUAGE_SPANISH_MODERN : case LANGUAGE_SPANISH_MODERN :
case LANGUAGE_SPANISH_DATED :
case LANGUAGE_SPANISH_MEXICAN :
case LANGUAGE_SPANISH_GUATEMALA : case LANGUAGE_SPANISH_GUATEMALA :
case LANGUAGE_SPANISH_COSTARICA : case LANGUAGE_SPANISH_COSTARICA :
case LANGUAGE_SPANISH_PANAMA : case LANGUAGE_SPANISH_PANAMA :
@ -1070,6 +1114,7 @@ xub_StrLen ImpSvNumberformatScan::ScanType(const String&)
USHORT i = 0; USHORT i = 0;
short eNewType; short eNewType;
BOOL bMatchBracket = FALSE; BOOL bMatchBracket = FALSE;
bool bHaveGeneral = false; // if General/Standard encountered
SkipStrings(i, nPos); SkipStrings(i, nPos);
while (i < nAnzStrings) while (i < nAnzStrings)
@ -1139,6 +1184,7 @@ xub_StrLen ImpSvNumberformatScan::ScanType(const String&)
break; break;
case NF_KEY_GENERAL: // Standard case NF_KEY_GENERAL: // Standard
eNewType = NUMBERFORMAT_NUMBER; eNewType = NUMBERFORMAT_NUMBER;
bHaveGeneral = true;
break; break;
default: default:
eNewType = NUMBERFORMAT_UNDEFINED; eNewType = NUMBERFORMAT_UNDEFINED;
@ -1361,7 +1407,7 @@ xub_StrLen ImpSvNumberformatScan::ScanType(const String&)
} }
if ((eScannedType == NUMBERFORMAT_NUMBER || eScannedType == NUMBERFORMAT_UNDEFINED) if ((eScannedType == NUMBERFORMAT_NUMBER || eScannedType == NUMBERFORMAT_UNDEFINED)
&& nCurrPos != STRING_NOTFOUND) && nCurrPos != STRING_NOTFOUND && !bHaveGeneral)
eScannedType = NUMBERFORMAT_CURRENCY; // old "automatic" currency eScannedType = NUMBERFORMAT_CURRENCY; // old "automatic" currency
if (eScannedType == NUMBERFORMAT_UNDEFINED) if (eScannedType == NUMBERFORMAT_UNDEFINED)
eScannedType = NUMBERFORMAT_DEFINED; eScannedType = NUMBERFORMAT_DEFINED;

View File

@ -1571,7 +1571,7 @@ const char* ResMgr::GetLang( LanguageType& nType, USHORT nPrio )
case LANGUAGE_PORTUGUESE_BRAZILIAN: case LANGUAGE_PORTUGUESE_BRAZILIAN:
return "55"; return "55";
case LANGUAGE_SPANISH: case LANGUAGE_SPANISH_DATED:
case LANGUAGE_SPANISH_MEXICAN: case LANGUAGE_SPANISH_MEXICAN:
case LANGUAGE_SPANISH_MODERN: case LANGUAGE_SPANISH_MODERN:
case LANGUAGE_SPANISH_GUATEMALA: case LANGUAGE_SPANISH_GUATEMALA:
@ -1623,7 +1623,7 @@ const char* ResMgr::GetLang( LanguageType& nType, USHORT nPrio )
case LANGUAGE_HINDI: case LANGUAGE_HINDI:
return "91"; return "91";
case LANGUAGE_ARABIC: case LANGUAGE_ARABIC_PRIMARY_ONLY:
case LANGUAGE_ARABIC_IRAQ: case LANGUAGE_ARABIC_IRAQ:
case LANGUAGE_ARABIC_EGYPT: case LANGUAGE_ARABIC_EGYPT:
case LANGUAGE_ARABIC_LIBYA: case LANGUAGE_ARABIC_LIBYA:

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: calendarwrapper.hxx,v $ * $RCSfile: calendarwrapper.hxx,v $
* $Revision: 1.10 $ * $Revision: 1.10.24.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -81,6 +81,9 @@ public:
void setLocalDateTime( double nTimeInDays ); void setLocalDateTime( double nTimeInDays );
/// convenience method to get local date/time /// convenience method to get local date/time
double getLocalDateTime() const; double getLocalDateTime() const;
// wrapper implementations of XCalendar
void setValue( sal_Int16 nFieldIndex, sal_Int16 nValue ); void setValue( sal_Int16 nFieldIndex, sal_Int16 nValue );
sal_Bool isValid() const; sal_Bool isValid() const;
sal_Int16 getValue( sal_Int16 nFieldIndex ) const; sal_Int16 getValue( sal_Int16 nFieldIndex ) const;
@ -95,6 +98,13 @@ public:
::com::sun::star::uno::Sequence< ::com::sun::star::i18n::CalendarItem > getDays() const; ::com::sun::star::uno::Sequence< ::com::sun::star::i18n::CalendarItem > getDays() const;
String getDisplayName( sal_Int16 nCalendarDisplayIndex, sal_Int16 nIdx, sal_Int16 nNameType ) const; String getDisplayName( sal_Int16 nCalendarDisplayIndex, sal_Int16 nIdx, sal_Int16 nNameType ) const;
/** Convenience method to get timezone offset in milliseconds, taking both
fields ZONE_OFFSET and ZONE_OFFSET_SECOND_MILLIS into account. */
sal_Int32 getZoneOffsetInMillis() const;
/** Convenience method to get DST offset in milliseconds, taking both
fields DST_OFFSET and DST_OFFSET_SECOND_MILLIS into account. */
sal_Int32 getDSTOffsetInMillis() const;
// wrapper implementations of XExtendedCalendar // wrapper implementations of XExtendedCalendar
String getDisplayString( sal_Int32 nCalendarDisplayCode, sal_Int16 nNativeNumberMode ) const; String getDisplayString( sal_Int32 nCalendarDisplayCode, sal_Int16 nNativeNumberMode ) const;
@ -114,6 +124,13 @@ public:
inline DateTime getGregorianDateTime() const inline DateTime getGregorianDateTime() const
{ return aEpochStart + getLocalDateTime(); } { return aEpochStart + getLocalDateTime(); }
private:
/** get timezone or DST offset in milliseconds, fields are
CalendarFieldIndex ZONE_OFFSET and ZONE_OFFSET_SECOND_MILLIS
respectively DST_OFFSET and DST_OFFSET_SECOND_MILLIS.
*/
sal_Int32 getCombinedOffsetInMillis( sal_Int16 nParentFieldIndex, sal_Int16 nChildFieldIndex ) const;
}; };
#endif #endif

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: calendarwrapper.cxx,v $ * $RCSfile: calendarwrapper.cxx,v $
* $Revision: 1.15 $ * $Revision: 1.15.24.1 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -51,6 +51,9 @@ using namespace ::com::sun::star::i18n;
using namespace ::com::sun::star::uno; using namespace ::com::sun::star::uno;
const double MILLISECONDS_PER_DAY = 1000.0 * 60.0 * 60.0 * 24.0;
CalendarWrapper::CalendarWrapper( CalendarWrapper::CalendarWrapper(
const Reference< lang::XMultiServiceFactory > & xSF const Reference< lang::XMultiServiceFactory > & xSF
) )
@ -259,6 +262,50 @@ double CalendarWrapper::getDateTime() const
} }
sal_Int32 CalendarWrapper::getCombinedOffsetInMillis(
sal_Int16 nParentFieldIndex, sal_Int16 nChildFieldIndex ) const
{
sal_Int32 nOffset = 0;
try
{
if ( xC.is() )
{
nOffset = static_cast<sal_Int32>( xC->getValue( nParentFieldIndex )) * 60000;
sal_Int16 nSecondMillis = xC->getValue( nChildFieldIndex );
if (nOffset < 0)
nOffset -= static_cast<sal_uInt16>( nSecondMillis);
else
nOffset += static_cast<sal_uInt16>( nSecondMillis);
}
}
catch ( Exception& e )
{
#ifndef PRODUCT
ByteString aMsg( "setLocalDateTime: Exception caught\n" );
aMsg += ByteString( String( e.Message ), RTL_TEXTENCODING_UTF8 );
DBG_ERRORFILE( aMsg.GetBuffer() );
#else
(void)e;
#endif
}
return nOffset;
}
sal_Int32 CalendarWrapper::getZoneOffsetInMillis() const
{
return getCombinedOffsetInMillis( CalendarFieldIndex::ZONE_OFFSET,
CalendarFieldIndex::ZONE_OFFSET_SECOND_MILLIS);
}
sal_Int32 CalendarWrapper::getDSTOffsetInMillis() const
{
return getCombinedOffsetInMillis( CalendarFieldIndex::DST_OFFSET,
CalendarFieldIndex::DST_OFFSET_SECOND_MILLIS);
}
void CalendarWrapper::setLocalDateTime( double nTimeInDays ) void CalendarWrapper::setLocalDateTime( double nTimeInDays )
{ {
try try
@ -270,22 +317,23 @@ void CalendarWrapper::setLocalDateTime( double nTimeInDays )
// OlsonTimeZone transitions. Since ICU incorporates also // OlsonTimeZone transitions. Since ICU incorporates also
// historical data even the timezone may differ for different // historical data even the timezone may differ for different
// dates! (Which was the cause for #i76623# when the timezone of a // dates! (Which was the cause for #i76623# when the timezone of a
// previously set date was used.) // previously set date was used.) Timezone may also include
// seconds, so use milliseconds field as well.
xC->setDateTime( nTimeInDays ); xC->setDateTime( nTimeInDays );
sal_Int16 nZone1 = xC->getValue( CalendarFieldIndex::ZONE_OFFSET ); sal_Int32 nZone1 = getZoneOffsetInMillis();
sal_Int16 nDST1 = xC->getValue( CalendarFieldIndex::DST_OFFSET ); sal_Int32 nDST1 = getDSTOffsetInMillis();
double nLoc = nTimeInDays - (double)(nZone1 + nDST1) / 60.0 / 24.0; double nLoc = nTimeInDays - (double)(nZone1 + nDST1) / MILLISECONDS_PER_DAY;
xC->setDateTime( nLoc ); xC->setDateTime( nLoc );
sal_Int16 nZone2 = xC->getValue( CalendarFieldIndex::ZONE_OFFSET ); sal_Int32 nZone2 = getZoneOffsetInMillis();
sal_Int16 nDST2 = xC->getValue( CalendarFieldIndex::DST_OFFSET ); sal_Int32 nDST2 = getDSTOffsetInMillis();
// If DSTs differ after calculation, we crossed boundaries. Do it // If DSTs differ after calculation, we crossed boundaries. Do it
// again, this time using the DST corrected initial value for the // again, this time using the DST corrected initial value for the
// real local time. // real local time.
// See also localtime/gmtime conversion pitfalls at // See also localtime/gmtime conversion pitfalls at
// http://www.erack.de/download/timetest.c // http://www.erack.de/download/timetest.c
if ( nZone1 != nZone2 || nDST1 != nDST2 ) if ( nDST1 != nDST2 )
{ {
nLoc = nTimeInDays - (double)(nZone2 + nDST2) / 60.0 / 24.0; nLoc = nTimeInDays - (double)(nZone2 + nDST2) / MILLISECONDS_PER_DAY;
xC->setDateTime( nLoc ); xC->setDateTime( nLoc );
// #i17222# If the DST onset rule says to switch from 00:00 to // #i17222# If the DST onset rule says to switch from 00:00 to
// 01:00 and we tried to set onsetDay 00:00 with DST, the // 01:00 and we tried to set onsetDay 00:00 with DST, the
@ -293,10 +341,10 @@ void CalendarWrapper::setLocalDateTime( double nTimeInDays )
// want. So once again without DST, resulting in onsetDay // want. So once again without DST, resulting in onsetDay
// 01:00 and DST. Yes, this seems to be weird, but logically // 01:00 and DST. Yes, this seems to be weird, but logically
// correct. // correct.
sal_Int16 nDST3 = xC->getValue( CalendarFieldIndex::DST_OFFSET ); sal_Int32 nDST3 = getDSTOffsetInMillis();
if ( nDST2 != nDST3 && !nDST3 ) if ( nDST2 != nDST3 && !nDST3 )
{ {
nLoc = nTimeInDays - (double)(nZone2 + nDST3) / 60.0 / 24.0; nLoc = nTimeInDays - (double)(nZone2 + nDST3) / MILLISECONDS_PER_DAY;
xC->setDateTime( nLoc ); xC->setDateTime( nLoc );
} }
} }
@ -322,11 +370,9 @@ double CalendarWrapper::getLocalDateTime() const
if ( xC.is() ) if ( xC.is() )
{ {
double nTimeInDays = xC->getDateTime(); double nTimeInDays = xC->getDateTime();
sal_Int16 nZone = xC->getValue( sal_Int32 nZone = getZoneOffsetInMillis();
com::sun::star::i18n::CalendarFieldIndex::ZONE_OFFSET ); sal_Int32 nDST = getDSTOffsetInMillis();
sal_Int16 nDST = xC->getValue( nTimeInDays += (double)(nZone + nDST) / MILLISECONDS_PER_DAY;
com::sun::star::i18n::CalendarFieldIndex::DST_OFFSET );
nTimeInDays += (double)(nZone + nDST) / 60.0 / 24.0;
return nTimeInDays; return nTimeInDays;
} }
} }

View File

@ -1883,6 +1883,7 @@ void ImplDevFontList::InitGenericGlyphFallback( void ) const
"khmerossystem", "", "khmerossystem", "",
"muktinarrow", "", "muktinarrow", "",
"phetsarathot", "", "phetsarathot", "",
"padauk", "pinlonmyanmar", "",
0 0
}; };

View File

@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: sallayout.cxx,v $ * $RCSfile: sallayout.cxx,v $
* $Revision: 1.94 $ * $Revision: 1.94.90.2 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
@ -243,86 +243,75 @@ sal_UCS4 GetLocalizedChar( sal_UCS4 nChar, LanguageType eLang )
return nChar; return nChar;
int nOffset; int nOffset;
switch( eLang ) // eLang & LANGUAGE_MASK_PRIMARY catches language independent of region.
// CAVEAT! To some like Mongolian MS assigned the same primary language
// although the script type is different!
switch( eLang & LANGUAGE_MASK_PRIMARY )
{ {
default: default:
nOffset = 0; nOffset = 0;
break; break;
case LANGUAGE_ARABIC: case LANGUAGE_ARABIC_SAUDI_ARABIA & LANGUAGE_MASK_PRIMARY:
case LANGUAGE_ARABIC_SAUDI_ARABIA: nOffset = 0x0660 - '0'; // arabic-indic digits
case LANGUAGE_ARABIC_IRAQ:
case LANGUAGE_ARABIC_EGYPT:
case LANGUAGE_ARABIC_LIBYA:
case LANGUAGE_ARABIC_ALGERIA:
case LANGUAGE_ARABIC_MOROCCO:
case LANGUAGE_ARABIC_TUNISIA:
case LANGUAGE_ARABIC_OMAN:
case LANGUAGE_ARABIC_YEMEN:
case LANGUAGE_ARABIC_SYRIA:
case LANGUAGE_ARABIC_JORDAN:
case LANGUAGE_ARABIC_LEBANON:
case LANGUAGE_ARABIC_KUWAIT:
case LANGUAGE_ARABIC_UAE:
case LANGUAGE_ARABIC_BAHRAIN:
case LANGUAGE_ARABIC_QATAR:
case LANGUAGE_URDU:
case LANGUAGE_URDU_PAKISTAN:
case LANGUAGE_URDU_INDIA:
case LANGUAGE_PUNJABI: //???
nOffset = 0x0660 - '0'; // arabic/persian/urdu
break; break;
case LANGUAGE_BENGALI: case LANGUAGE_URDU & LANGUAGE_MASK_PRIMARY:
case LANGUAGE_PUNJABI & LANGUAGE_MASK_PRIMARY: //???
case LANGUAGE_SINDHI & LANGUAGE_MASK_PRIMARY:
nOffset = 0x06F0 - '0'; // eastern arabic-indic digits
break;
case LANGUAGE_BENGALI & LANGUAGE_MASK_PRIMARY:
nOffset = 0x09E6 - '0'; // bengali nOffset = 0x09E6 - '0'; // bengali
break; break;
case LANGUAGE_HINDI: case LANGUAGE_HINDI & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0966 - '0'; // devanagari nOffset = 0x0966 - '0'; // devanagari
break; break;
#if 0 case LANGUAGE_AMHARIC_ETHIOPIA & LANGUAGE_MASK_PRIMARY:
case LANGUAGE_TIGRIGNA_ETHIOPIA & LANGUAGE_MASK_PRIMARY:
// TODO case: // TODO case:
nOffset = 0x1369 - '0'; // ethiopic nOffset = 0x1369 - '0'; // ethiopic
break; break;
#endif case LANGUAGE_GUJARATI & LANGUAGE_MASK_PRIMARY:
case LANGUAGE_GUJARATI:
nOffset = 0x0AE6 - '0'; // gujarati nOffset = 0x0AE6 - '0'; // gujarati
break; break;
#if 0 #ifdef LANGUAGE_GURMUKHI // TODO case:
// TODO case: case LANGUAGE_GURMUKHI & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0A66 - '0'; // gurmukhi nOffset = 0x0A66 - '0'; // gurmukhi
break; break;
#endif #endif
case LANGUAGE_KANNADA: case LANGUAGE_KANNADA & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0CE6 - '0'; // kannada nOffset = 0x0CE6 - '0'; // kannada
break; break;
case LANGUAGE_KHMER: case LANGUAGE_KHMER & LANGUAGE_MASK_PRIMARY:
nOffset = 0x17E0 - '0'; // khmer nOffset = 0x17E0 - '0'; // khmer
break; break;
case LANGUAGE_LAO: case LANGUAGE_LAO & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0ED0 - '0'; // lao nOffset = 0x0ED0 - '0'; // lao
break; break;
case LANGUAGE_MALAYALAM: case LANGUAGE_MALAYALAM & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0D66 - '0'; // malayalam nOffset = 0x0D66 - '0'; // malayalam
break; break;
case LANGUAGE_MONGOLIAN: case LANGUAGE_MONGOLIAN & LANGUAGE_MASK_PRIMARY:
if (eLang == LANGUAGE_MONGOLIAN_MONGOLIAN)
nOffset = 0x1810 - '0'; // mongolian nOffset = 0x1810 - '0'; // mongolian
else
nOffset = 0; // mongolian cyrillic
break; break;
#if 0 case LANGUAGE_BURMESE & LANGUAGE_MASK_PRIMARY:
// TODO case:
nOffset = 0x1040 - '0'; // myanmar nOffset = 0x1040 - '0'; // myanmar
break; break;
#endif case LANGUAGE_ORIYA & LANGUAGE_MASK_PRIMARY:
case LANGUAGE_ORIYA:
nOffset = 0x0B66 - '0'; // oriya nOffset = 0x0B66 - '0'; // oriya
break; break;
case LANGUAGE_TAMIL: case LANGUAGE_TAMIL & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0BE7 - '0'; // tamil nOffset = 0x0BE7 - '0'; // tamil
break; break;
case LANGUAGE_TELUGU: case LANGUAGE_TELUGU & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0C66 - '0'; // telugu nOffset = 0x0C66 - '0'; // telugu
break; break;
case LANGUAGE_THAI: case LANGUAGE_THAI & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0E50 - '0'; // thai nOffset = 0x0E50 - '0'; // thai
break; break;
case LANGUAGE_TIBETAN: case LANGUAGE_TIBETAN & LANGUAGE_MASK_PRIMARY:
nOffset = 0x0F20 - '0'; // tibetan nOffset = 0x0F20 - '0'; // tibetan
break; break;
#if 0 // TODO: use language type for these digit substitutions? #if 0 // TODO: use language type for these digit substitutions?