summaryrefslogtreecommitdiff
path: root/i18npool/source/isolang
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-06-19 13:48:45 +0100
committerCaolán McNamara <caolanm@redhat.com>2012-06-19 14:11:50 +0100
commitd9e4c74811855de15f1bf2045c2c9b061a2d4dc6 (patch)
tree895cbcd595094e9fd2621a943fc83bb004b429c9 /i18npool/source/isolang
parent2a598619d7fbc992f1903a745fd536ddf5e45c81 (diff)
merge together hand-crafted traditional/simplified chinese tests
merge together a gadzillion hand-crafted isSimpleChinese/isTraditionalChinese/isKoreanVariants/isCJK implementations which should fix a goodly amount of them add a MsLangId::isFamilyNameFirst for locales where family name appears first while I'm at it. Change-Id: I65377793be037d16fe7250cd7450b28aec689e83
Diffstat (limited to 'i18npool/source/isolang')
-rw-r--r--i18npool/source/isolang/mslangid.cxx59
1 files changed, 58 insertions, 1 deletions
diff --git a/i18npool/source/isolang/mslangid.cxx b/i18npool/source/isolang/mslangid.cxx
index 3cd877e4c91b..206a8c71aa41 100644
--- a/i18npool/source/isolang/mslangid.cxx
+++ b/i18npool/source/isolang/mslangid.cxx
@@ -249,9 +249,54 @@ bool MsLangId::isRightToLeft( LanguageType nLang )
return false;
}
+// static
+bool MsLangId::isSimplifiedChinese( LanguageType nLang )
+{
+ return isChinese(nLang) && !isTraditionalChinese(nLang);
+}
// static
-bool MsLangId::hasForbiddenCharacters( LanguageType nLang )
+bool MsLangId::isSimplifiedChinese( const ::com::sun::star::lang::Locale & rLocale )
+{
+ return rLocale.Language == "zh" && !isTraditionalChinese(rLocale);
+}
+
+// static
+bool MsLangId::isTraditionalChinese( LanguageType nLang )
+{
+ bool bRet = false;
+ switch (nLang)
+ {
+ case LANGUAGE_CHINESE_TRADITIONAL:
+ case LANGUAGE_CHINESE_HONGKONG:
+ case LANGUAGE_CHINESE_MACAU:
+ bRet = true;
+ default:
+ break;
+ }
+ return bRet;
+}
+
+// static
+bool MsLangId::isTraditionalChinese( const ::com::sun::star::lang::Locale & rLocale )
+{
+ return rLocale.Language == "zh" && (rLocale.Country == "TW" || rLocale.Country == "HK" || rLocale.Country == "MO");
+}
+
+//static
+bool MsLangId::isChinese( LanguageType nLang )
+{
+ return MsLangId::getPrimaryLanguage(nLang) == LANGUAGE_CHINESE;
+}
+
+//static
+bool MsLangId::isKorean( LanguageType nLang )
+{
+ return MsLangId::getPrimaryLanguage(nLang) == LANGUAGE_KOREAN;
+}
+
+// static
+bool MsLangId::isCJK( LanguageType nLang )
{
switch (nLang & LANGUAGE_MASK_PRIMARY)
{
@@ -265,6 +310,18 @@ bool MsLangId::hasForbiddenCharacters( LanguageType nLang )
return false;
}
+// static
+bool MsLangId::isFamilyNameFirst( LanguageType nLang )
+{
+ return isCJK(nLang) || nLang == LANGUAGE_HUNGARIAN;
+}
+
+// static
+bool MsLangId::hasForbiddenCharacters( LanguageType nLang )
+{
+ return isCJK(nLang);
+}
+
// static
bool MsLangId::needsSequenceChecking( LanguageType nLang )