cui/source/options/optgdlg.cxx | 4 ++-- i18npool/inc/i18npool/mslangid.hxx | 15 +++++++++++++-- i18npool/source/isolang/mslangid.cxx | 5 +++-- svtools/inc/svtools/langtab.hxx | 8 +++++++- svtools/source/misc/langtab.cxx | 4 ++-- svtools/source/misc/langtab.src | 1 + 6 files changed, 28 insertions(+), 9 deletions(-)
New commits: commit eea858f6c7696becab4e67ca00f5ee0293e63718 Author: Eike Rathke <er...@redhat.com> Date: Fri Dec 9 22:33:50 2011 +0100 fixed fdo#37349 present Catalan (Valencian) as selectable UI language Catalan (Valencian) has no ISO 639 code assigned and the UI localization uses the ca-XV hack where XV is of the reserved ISO 3166 user-assigned range. This should not escape to document content therefor internally a replacement to ca-ES is done for all locale attribution. For the UI localization to be distinguishable under Tools->Options->LanguageSettings->UserInterface this needed a special handling to allow Catalan (Valencian) again. diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx index dabc5a7..79c41d8 100644 --- a/cui/source/options/optgdlg.cxx +++ b/cui/source/options/optgdlg.cxx @@ -1280,7 +1280,7 @@ OfaLanguagesTabPage::OfaLanguagesTabPage( Window* pParent, const SfxItemSet& rSe String aUILang(aStr); aUILang += String::CreateFromAscii(" - "); - aUILang += pLanguageTable->GetString( Application::GetSettings().GetUILanguage() ); + aUILang += pLanguageTable->GetString( Application::GetSettings().GetUILanguage(), true ); aUserInterfaceLB.InsertEntry(aUILang); aUserInterfaceLB.SetEntryData(0, 0); @@ -1308,7 +1308,7 @@ OfaLanguagesTabPage::OfaLanguagesTabPage( Window* pParent, const SfxItemSet& rSe if (aLang != LANGUAGE_DONTKNOW) { //sal_uInt16 p = aUserInterfaceLB.InsertLanguage(aLang); - String aLangStr( pLanguageTable->GetString( aLang ) ); + String aLangStr( pLanguageTable->GetString( aLang, true ) ); sal_uInt16 p = aUserInterfaceLB.InsertEntry(aLangStr); aUserInterfaceLB.SetEntryData(p, (void*)(i+1)); } diff --git a/i18npool/inc/i18npool/mslangid.hxx b/i18npool/inc/i18npool/mslangid.hxx index 717a5bb..f1da981 100644 --- a/i18npool/inc/i18npool/mslangid.hxx +++ b/i18npool/inc/i18npool/mslangid.hxx @@ -203,8 +203,19 @@ public: /** Map an obsolete user defined LANGID (see lang.h LANGUAGE_OBSOLETE_USER_...) to the new value defined by MS in the - meantime. */ - static LanguageType getReplacementForObsoleteLanguage( LanguageType nLang ); + meantime. + + Also used to map UI localizations using reserved ISO codes to something + "official" but not identical in order to not pollute documents with + invalid ISO codes. + + @param bUserInterfaceSelection + If TRUE, don't replace such UI-only locale. Only use for + Tools->Options->LanguageSettings->UserInterface listbox. + If FALSE, do replace. + */ + static LanguageType getReplacementForObsoleteLanguage( LanguageType nLang, + bool bUserInterfaceSelection = false ); /** @ATTENTION: these are _ONLY_ to be called by the application's diff --git a/i18npool/source/isolang/mslangid.cxx b/i18npool/source/isolang/mslangid.cxx index 06941b6..e5661da 100644 --- a/i18npool/source/isolang/mslangid.cxx +++ b/i18npool/source/isolang/mslangid.cxx @@ -379,7 +379,7 @@ sal_Int16 MsLangId::getScriptType( LanguageType nLang ) // static -LanguageType MsLangId::getReplacementForObsoleteLanguage( LanguageType nLang ) +LanguageType MsLangId::getReplacementForObsoleteLanguage( LanguageType nLang, bool bUserInterfaceSelection ) { switch (nLang) { @@ -433,7 +433,8 @@ LanguageType MsLangId::getReplacementForObsoleteLanguage( LanguageType nLang ) // Do not use ca-XV for document content. /* TODO: remove in case we implement BCP47 language tags. */ case LANGUAGE_USER_CATALAN_VALENCIAN: - nLang = LANGUAGE_CATALAN; + if (!bUserInterfaceSelection) + nLang = LANGUAGE_CATALAN; break; } return nLang; diff --git a/svtools/inc/svtools/langtab.hxx b/svtools/inc/svtools/langtab.hxx index 9b38297..5785322 100644 --- a/svtools/inc/svtools/langtab.hxx +++ b/svtools/inc/svtools/langtab.hxx @@ -43,7 +43,13 @@ public: SvtLanguageTable(); ~SvtLanguageTable(); - const String& GetString( const LanguageType eType ) const; + /** + @param bUserInterfaceSelection + If TRUE, don't replace an UI-only locale. Only use for + Tools->Options->LanguageSettings->UserInterface listbox. + If FALSE, do replace. + */ + const String& GetString( const LanguageType eType, bool bUserInterfaceSelection = false ) const; LanguageType GetType( const String& rStr ) const; sal_uInt32 GetEntryCount() const; diff --git a/svtools/source/misc/langtab.cxx b/svtools/source/misc/langtab.cxx index 2ce718e..51e93d4 100644 --- a/svtools/source/misc/langtab.cxx +++ b/svtools/source/misc/langtab.cxx @@ -136,9 +136,9 @@ SvtLanguageTable::~SvtLanguageTable() //------------------------------------------------------------------------ -const String& SvtLanguageTable::GetString( const LanguageType eType ) const +const String& SvtLanguageTable::GetString( const LanguageType eType, bool bUserInterfaceSelection ) const { - LanguageType eLang = MsLangId::getReplacementForObsoleteLanguage( eType); + LanguageType eLang = MsLangId::getReplacementForObsoleteLanguage( eType, bUserInterfaceSelection); sal_uInt32 nPos = FindIndex( eLang ); if ( RESARRAY_INDEX_NOTFOUND != nPos && nPos < Count() ) diff --git a/svtools/source/misc/langtab.src b/svtools/source/misc/langtab.src index 5d743e3..b82e0f4 100644 --- a/svtools/source/misc/langtab.src +++ b/svtools/source/misc/langtab.src @@ -79,6 +79,7 @@ StringArray STR_ARR_SVT_LANGUAGE_TABLE < "Bulgarian" ; LANGUAGE_BULGARIAN ; > ; < "Belarusian" ; LANGUAGE_BELARUSIAN ; > ; < "Catalan" ; LANGUAGE_CATALAN ; > ; + < "Catalan (Valencian)" ; LANGUAGE_USER_CATALAN_VALENCIAN ; > ; // UI only! < "Chinese (traditional)" ; LANGUAGE_CHINESE_TRADITIONAL ; > ; < "Chinese (simplified)" ; LANGUAGE_CHINESE_SIMPLIFIED ; > ; < "Chinese (Hong Kong)" ; LANGUAGE_CHINESE_HONGKONG ; > ; _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits