Kaydet (Commit) 8c736b85 authored tarafından Eike Rathke's avatar Eike Rathke

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.
üst 4345b5cb
......@@ -1279,7 +1279,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);
......@@ -1307,7 +1307,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));
}
......
......@@ -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
......
......@@ -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;
......
......@@ -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;
......
......@@ -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() )
......
......@@ -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 ; > ;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment