i18nlangtag/source/isolang/isolang.cxx | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-)
New commits: commit 1e37bd43a9c9da1de72187a932cd8da60936cc95 Author: Eike Rathke <[email protected]> Date: Wed Aug 28 12:27:14 2013 +0200 field comments Change-Id: I1df968ff81376b789c34f2c5e56acb6ac0ce30ed diff --git a/i18nlangtag/source/isolang/isolang.cxx b/i18nlangtag/source/isolang/isolang.cxx index 8d3e6d2..5e87075 100644 --- a/i18nlangtag/source/isolang/isolang.cxx +++ b/i18nlangtag/source/isolang/isolang.cxx @@ -560,6 +560,7 @@ static IsoLanguageCountryEntry const aImplIsoLangEntries[] = static IsoLanguageScriptCountryEntry const aImplIsoLangScriptEntries[] = { + // MS-LangID ISO639-ISO15924, ISO3166 // { LANGUAGE_USER_SERBIAN_LATIN_SERBIA, "sr-Latn", "RS" }, // for example, once we support it in l10n; TODO: adapt unit test in this case { LANGUAGE_DONTKNOW, "", "" } // marks end of table }; commit a40afb3f534ea1c655ac728e55a7e4b96b033869 Author: Eike Rathke <[email protected]> Date: Wed Aug 28 12:19:16 2013 +0200 added IsoLanguageScriptCountryEntry to getDefinedLanguagetags() Change-Id: Icc7cecfca05ceb2b1b75422dd97a6d467b3697f4 diff --git a/i18nlangtag/source/isolang/isolang.cxx b/i18nlangtag/source/isolang/isolang.cxx index 8d07617..8d3e6d2 100644 --- a/i18nlangtag/source/isolang/isolang.cxx +++ b/i18nlangtag/source/isolang/isolang.cxx @@ -560,7 +560,7 @@ static IsoLanguageCountryEntry const aImplIsoLangEntries[] = static IsoLanguageScriptCountryEntry const aImplIsoLangScriptEntries[] = { -// { LANGUAGE_USER_SERBIAN_LATIN_SERBIA, "sr-Latn", "RS" }, // for example, once we support it in l10n +// { LANGUAGE_USER_SERBIAN_LATIN_SERBIA, "sr-Latn", "RS" }, // for example, once we support it in l10n; TODO: adapt unit test in this case { LANGUAGE_DONTKNOW, "", "" } // marks end of table }; @@ -1116,7 +1116,13 @@ LanguageType MsLangId::convertUnxByteStringToLanguage( ::std::vector< MsLangId::LanguagetagMapping > MsLangId::getDefinedLanguagetags() { ::std::vector< LanguagetagMapping > aVec; - for (const IsoLanguageCountryEntry* pEntry = aImplIsoLangEntries; pEntry->mnLang != LANGUAGE_DONTKNOW; ++pEntry) + for (const IsoLanguageScriptCountryEntry* pEntry = aImplIsoLangScriptEntries; + pEntry->mnLang != LANGUAGE_DONTKNOW; ++pEntry) + { + aVec.push_back( LanguagetagMapping( pEntry->getTagString(), pEntry->mnLang)); + } + for (const IsoLanguageCountryEntry* pEntry = aImplIsoLangEntries; + pEntry->mnLang != LANGUAGE_DONTKNOW; ++pEntry) { aVec.push_back( LanguagetagMapping( pEntry->getTagString(), pEntry->mnLang)); } commit 55503ad64689928e6c0c28a34e72a4dd3a3fa438 Author: Eike Rathke <[email protected]> Date: Wed Aug 28 12:14:32 2013 +0200 don't use startsWithIgnoreAsciiCase() on pointers Change-Id: I407e4769be254446ad191ce7640ea1789bca1f1e diff --git a/i18nlangtag/source/isolang/isolang.cxx b/i18nlangtag/source/isolang/isolang.cxx index 41d8411..8d07617 100644 --- a/i18nlangtag/source/isolang/isolang.cxx +++ b/i18nlangtag/source/isolang/isolang.cxx @@ -53,6 +53,12 @@ struct IsoLanguageScriptCountryEntry /** Obtain a locale. */ ::com::sun::star::lang::Locale getLocale() const; + + /** If rStr starts with maLanguageScript ignoring case. + + We don't have OUString::startsWithIgnoreAsciiCaseAscii() + */ + bool startsInIgnoreAsciiCase( const OUString & rStr ) const; }; struct IsoLangEngEntry @@ -587,6 +593,11 @@ OUString IsoLanguageScriptCountryEntry::getTagString() const return lang::Locale( I18NLANGTAG_QLT, OUString::createFromAscii( maCountry), getTagString()); } +bool IsoLanguageScriptCountryEntry::startsInIgnoreAsciiCase( const OUString & rStr ) const +{ + return rStr.matchIgnoreAsciiCaseAsciiL( maLanguageScript, strlen( maLanguageScript), 0); +} + // ----------------------------------------------------------------------- // In this table are the countries which should mapped to a specific @@ -773,7 +784,7 @@ void MsLangId::Conversion::convertLanguageToLocaleImpl( LanguageType nLang, for (const IsoLanguageScriptCountryEntry* pScriptEntry = aImplIsoLangScriptEntries; pScriptEntry->mnLang != LANGUAGE_DONTKNOW; ++pScriptEntry) { - if (rLocale.Variant.startsWithIgnoreAsciiCase( pScriptEntry->maLanguageScript)) + if (pScriptEntry->startsInIgnoreAsciiCase( rLocale.Variant)) { if (rLocale.Variant.equalsIgnoreAsciiCase( pScriptEntry->getTagString())) return pScriptEntry->getLocale(); @@ -792,7 +803,7 @@ void MsLangId::Conversion::convertLanguageToLocaleImpl( LanguageType nLang, for (const IsoLanguageScriptCountryEntry* pScriptEntry = pFirstScript; pScriptEntry->mnLang != LANGUAGE_DONTKNOW; ++pScriptEntry) { - if (rLocale.Variant.startsWithIgnoreAsciiCase( pScriptEntry->maLanguageScript) && + if (pScriptEntry->startsInIgnoreAsciiCase( rLocale.Variant) && rLocale.Country.equalsIgnoreAsciiCaseAscii( pScriptEntry->maCountry)) return pScriptEntry->getLocale(); } @@ -888,7 +899,7 @@ LanguageType MsLangId::Conversion::convertLocaleToLanguageImpl( for (const IsoLanguageScriptCountryEntry* pScriptEntry = aImplIsoLangScriptEntries; pScriptEntry->mnLang != LANGUAGE_DONTKNOW; ++pScriptEntry) { - if (rLocale.Variant.startsWithIgnoreAsciiCase( pScriptEntry->maLanguageScript)) + if (pScriptEntry->startsInIgnoreAsciiCase( rLocale.Variant)) { if (rLocale.Variant.equalsIgnoreAsciiCase( pScriptEntry->getTagString())) return pScriptEntry->mnLang; _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
