Convert Languages tab page to .ui

Deleted the readonly images too,it was not used any where else and was just confusing.

Change-Id: Ibdcda961966ceab28b224335bfa2e154a395e788
diff --git a/cui/AllLangResTarget_cui.mk b/cui/AllLangResTarget_cui.mk
index 6cd18c5..252ae34 100644
--- a/cui/AllLangResTarget_cui.mk
+++ b/cui/AllLangResTarget_cui.mk
@@ -56,7 +56,6 @@ $(eval $(call gb_SrsTarget_add_files,cui/res,\
    cui/source/options/optcolor.src \
    cui/source/options/optdict.src \
    cui/source/options/optfltr.src \
    cui/source/options/optgdlg.src \
    cui/source/options/opthtml.src \
    cui/source/options/optinet2.src \
    cui/source/options/optjava.src \
@@ -64,7 +63,6 @@ $(eval $(call gb_SrsTarget_add_files,cui/res,\
    cui/source/options/optlingu.src \
    cui/source/options/optpath.src \
    cui/source/options/optsave.src \
    cui/source/options/readonlyimage.src \
    cui/source/options/treeopt.src \
    cui/source/tabpages/align.src \
    cui/source/tabpages/autocdlg.src \
diff --git a/cui/Library_cui.mk b/cui/Library_cui.mk
index fc27d59..f7d9f7c 100644
--- a/cui/Library_cui.mk
+++ b/cui/Library_cui.mk
@@ -155,7 +155,6 @@ $(eval $(call gb_Library_add_exception_objects,cui,\
    cui/source/options/optupdt \
    cui/source/options/personalization \
    cui/source/options/radiobtnbox \
    cui/source/options/readonlyimage \
    cui/source/options/sdbcdriverenum \
    cui/source/options/securityoptions \
    cui/source/options/treeopt \
diff --git a/cui/UIConfig_cui.mk b/cui/UIConfig_cui.mk
index c61d486..b21a582 100644
--- a/cui/UIConfig_cui.mk
+++ b/cui/UIConfig_cui.mk
@@ -48,6 +48,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
	cui/uiconfig/ui/optfltrpage \
	cui/uiconfig/ui/optfontspage \
	cui/uiconfig/ui/optgeneralpage \
	cui/uiconfig/ui/optlanguagespage \
	cui/uiconfig/ui/optmemorypage \
	cui/uiconfig/ui/optonlineupdatepage \
	cui/uiconfig/ui/optpathspage \
diff --git a/cui/source/inc/helpid.hrc b/cui/source/inc/helpid.hrc
index 7fb18cb..24d11fb 100644
--- a/cui/source/inc/helpid.hrc
+++ b/cui/source/inc/helpid.hrc
@@ -44,7 +44,6 @@
#define HID_OFA_CONNPOOL_DRIVERLIST "CUI_HID_OFA_CONNPOOL_DRIVERLIST"
#define UID_OFA_CONNPOOL_DRIVERLIST_BACK "CUI_UID_OFA_CONNPOOL_DRIVERLIST_BACK"
#define HID_OFA_FONT_SUBST_CLB "CUI_HID_OFA_FONT_SUBST_CLB"
#define HID_OFA_TP_LANGUAGES "CUI_HID_OFA_TP_LANGUAGES"
#define HID_DBPATH_CTL_PATH "CUI_HID_DBPATH_CTL_PATH"
#define HID_DBPATH_HEADERBAR "CUI_HID_DBPATH_HEADERBAR"
#define HID_OFAPAGE_SMARTTAG_OPTIONS "CUI_HID_OFAPAGE_SMARTTAG_OPTIONS"
diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
index 7a3a9e3..9f64347 100644
--- a/cui/source/options/optgdlg.cxx
+++ b/cui/source/options/optgdlg.cxx
@@ -83,7 +83,6 @@

#include <vcl/svapp.hxx>

#include "optgdlg.hrc"
#include "optgdlg.hxx"
#include <svx/ofaitem.hxx>
#include <svtools/apearcfg.hxx>
@@ -1013,42 +1012,26 @@ static OUString lcl_getDatePatternsConfigString( const LocaleDataWrapper& rLocal
}

OfaLanguagesTabPage::OfaLanguagesTabPage( Window* pParent, const SfxItemSet& rSet ) :
    SfxTabPage( pParent, CUI_RES( OFA_TP_LANGUAGES ), rSet ),
    aUILanguageGB(this,         CUI_RES(FL_UI_LANG      )),
    aLocaleSettingFI(this,      CUI_RES(FI_LOCALESETTING)),
    aUserInterfaceFT(this,      CUI_RES(FT_USERINTERFACE)),
    aUserInterfaceLB(this,      CUI_RES(LB_USERINTERFACE)),
    aLocaleSettingFT(this,      CUI_RES(FT_LOCALESETTING)),
    aLocaleSettingLB(this,      CUI_RES(LB_LOCALESETTING)),
    aCurrencyFI( this,          CUI_RES(FI_CURRENCY       )),
    aDecimalSeparatorFT(this,   CUI_RES(FT_DECIMALSEPARATOR)),
    aDecimalSeparatorCB(this,   CUI_RES(CB_DECIMALSEPARATOR)),
    aCurrencyFT( this,          CUI_RES(FT_CURRENCY       )),
    aCurrencyLB( this,          CUI_RES(LB_CURRENCY       )),
    aDatePatternsFI( this,      CUI_RES(FI_DATEPATTERNS   )),
    aDatePatternsFT( this,      CUI_RES(FT_DATEPATTERNS   )),
    aDatePatternsED( this,      CUI_RES(ED_DATEPATTERNS   )),
    aLinguLanguageGB(this,      CUI_RES(FL_LINGU_LANG       )),
    aWesternLanguageFI(this,    CUI_RES(FI_WEST_LANG      )),
    aWesternLanguageFT(this,    CUI_RES(FT_WEST_LANG      )),
    aWesternLanguageLB(this,    CUI_RES(LB_WEST_LANG        )),
    aAsianLanguageFI(this,      CUI_RES(FI_ASIAN_LANG     )),
    aAsianLanguageFT(this,      CUI_RES(FT_ASIAN_LANG     )),
    aAsianLanguageLB(this,      CUI_RES(LB_ASIAN_LANG       )),
    aComplexLanguageFI(this,    CUI_RES(FI_COMPLEX_LANG   )),
    aComplexLanguageFT(this,    CUI_RES(FT_COMPLEX_LANG   )),
    aComplexLanguageLB(this,    CUI_RES(LB_COMPLEX_LANG )),
    aCurrentDocCB(this,         CUI_RES(CB_CURRENT_DOC  )),
    aEnhancedFL(this,           CUI_RES(FL_ENHANCED    )),
    aAsianSupportFI(this,       CUI_RES(FI_ASIANSUPPORT   )),
    aAsianSupportCB(this,       CUI_RES(CB_ASIANSUPPORT   )),
    aCTLSupportFI(this,         CUI_RES(FI_CTLSUPPORT    )),
    aCTLSupportCB(this,         CUI_RES(CB_CTLSUPPORT   )),
    aIgnoreLanguageChangeCB(this, CUI_RES(CB_IGNORE_LANG_CHANGE   )),
    sDecimalSeparatorLabel(aDecimalSeparatorCB.GetText()),
    pLangConfig(new LanguageConfig_Impl)
      SfxTabPage( pParent,"OptLanguagesPage","cui/ui/optlanguagespage.ui", rSet ),
     pLangConfig(new LanguageConfig_Impl)
{
    FreeResource();
    get(m_pUserInterfaceLB, "userinterface");
    get(m_pLocaleSettingLB, "localesetting");
    get(m_pLocaleSettingFT, "localesettingFT");
    get(m_pDecimalSeparatorCB, "decimalseparator");
    get(m_pCurrencyFT, "defaultcurrency");
    get(m_pCurrencyLB, "currencylb");
    get(m_pDatePatternsFT,"dataaccpatterns");
    get(m_pDatePatternsED, "datepatterns");

    get(m_pWesternLanguageLB, "westernlanguage");
    get(m_pWesternLanguageFT, "western");
    get(m_pAsianLanguageLB, "asianlanguage");
    get(m_pComplexLanguageLB, "complexlanguage");
    get(m_pCurrentDocCB, "currentdoc");
    get(m_pAsianSupportCB, "asiansupport");
    get(m_pCTLSupportCB, "ctlsupport");
    get(m_pIgnoreLanguageChangeCB, "ignorelanguagechange");

    // initialize user interface language selection
    SvtLanguageTable* pLanguageTable = new SvtLanguageTable;
@@ -1058,9 +1041,9 @@ OfaLanguagesTabPage::OfaLanguagesTabPage( Window* pParent, const SfxItemSet& rSe
                       " - " +
                       pLanguageTable->GetString( Application::GetSettings().GetUILanguageTag().getLanguageType(), true );

    aUserInterfaceLB.InsertEntry(aUILang);
    aUserInterfaceLB.SetEntryData(0, 0);
    aUserInterfaceLB.SelectEntryPos(0);
    m_pUserInterfaceLB->InsertEntry(aUILang);
    m_pUserInterfaceLB->SetEntryData(0, 0);
    m_pUserInterfaceLB->SelectEntryPos(0);
    try
    {
        Reference< XMultiServiceFactory > theConfigProvider(
@@ -1080,10 +1063,10 @@ OfaLanguagesTabPage::OfaLanguagesTabPage( Window* pParent, const SfxItemSet& rSe
            aLang = LanguageTag(seqInstalledLanguages[i]).getLanguageType();
            if (aLang != LANGUAGE_DONTKNOW)
            {
                //sal_uInt16 p = aUserInterfaceLB.InsertLanguage(aLang);
                //sal_uInt16 p = m_pUserInterfaceLB->InsertLanguage(aLang);
                OUString aLangStr( pLanguageTable->GetString( aLang, true ) );
                sal_uInt16 p = aUserInterfaceLB.InsertEntry(aLangStr);
                aUserInterfaceLB.SetEntryData(p, (void*)(i+1));
                sal_uInt16 p = m_pUserInterfaceLB->InsertEntry(aLangStr);
                m_pUserInterfaceLB->SetEntryData(p, (void*)(i+1));
            }
        }

@@ -1098,11 +1081,11 @@ OfaLanguagesTabPage::OfaLanguagesTabPage( Window* pParent, const SfxItemSet& rSe
        if (!m_sUserLocaleValue.isEmpty())
        {
            sal_Int32 d = 0;
            for (sal_uInt16 i=0; i < aUserInterfaceLB.GetEntryCount(); i++)
            for (sal_uInt16 i=0; i < m_pUserInterfaceLB->GetEntryCount(); i++)
            {
                d = (sal_Int32)(sal_IntPtr)aUserInterfaceLB.GetEntryData(i);
                d = (sal_Int32)(sal_IntPtr)m_pUserInterfaceLB->GetEntryData(i);
                if ( d > 0 && seqInstalledLanguages.getLength() > d-1 && seqInstalledLanguages[d-1].equals(m_sUserLocaleValue))
                    aUserInterfaceLB.SelectEntryPos(i);
                    m_pUserInterfaceLB->SelectEntryPos(i);
            }
        }

@@ -1115,21 +1098,21 @@ OfaLanguagesTabPage::OfaLanguagesTabPage( Window* pParent, const SfxItemSet& rSe
        OSL_FAIL(aMsg.getStr());
    }

    aWesternLanguageLB.SetLanguageList( LANG_LIST_WESTERN | LANG_LIST_ONLY_KNOWN, sal_True,  sal_False, sal_True );
    aWesternLanguageLB.InsertDefaultLanguage( ::com::sun::star::i18n::ScriptType::LATIN );
    aAsianLanguageLB.SetLanguageList( LANG_LIST_CJK     | LANG_LIST_ONLY_KNOWN, sal_True,  sal_False, sal_True );
    aAsianLanguageLB.InsertDefaultLanguage( ::com::sun::star::i18n::ScriptType::ASIAN );
    aComplexLanguageLB.SetLanguageList( LANG_LIST_CTL     | LANG_LIST_ONLY_KNOWN, sal_True,  sal_False, sal_True );
    aComplexLanguageLB.InsertDefaultLanguage( ::com::sun::star::i18n::ScriptType::COMPLEX );
    m_pWesternLanguageLB->SetLanguageList( LANG_LIST_WESTERN | LANG_LIST_ONLY_KNOWN, sal_True,  sal_False, sal_True );
    m_pWesternLanguageLB->InsertDefaultLanguage( ::com::sun::star::i18n::ScriptType::LATIN );
    m_pAsianLanguageLB->SetLanguageList( LANG_LIST_CJK     | LANG_LIST_ONLY_KNOWN, sal_True,  sal_False, sal_True );
    m_pAsianLanguageLB->InsertDefaultLanguage( ::com::sun::star::i18n::ScriptType::ASIAN );
    m_pComplexLanguageLB->SetLanguageList( LANG_LIST_CTL     | LANG_LIST_ONLY_KNOWN, sal_True,  sal_False, sal_True );
    m_pComplexLanguageLB->InsertDefaultLanguage( ::com::sun::star::i18n::ScriptType::COMPLEX );

    aLocaleSettingLB.SetLanguageList( LANG_LIST_ALL     | LANG_LIST_ONLY_KNOWN, sal_False, sal_False, sal_False);
    aLocaleSettingLB.InsertSystemLanguage( );
    m_pLocaleSettingLB->SetLanguageList( LANG_LIST_ALL     | LANG_LIST_ONLY_KNOWN, sal_False, sal_False, sal_False);
    m_pLocaleSettingLB->InsertSystemLanguage( );

    const NfCurrencyTable& rCurrTab = SvNumberFormatter::GetTheCurrencyTable();
    const NfCurrencyEntry& rCurr = SvNumberFormatter::GetCurrencyEntry( LANGUAGE_SYSTEM );
    // insert SYSTEM entry
    OUString aDefaultCurr = aStr + " - " + rCurr.GetBankSymbol();
    aCurrencyLB.InsertEntry( aDefaultCurr );
    m_pCurrencyLB->InsertEntry( aDefaultCurr );
    // all currencies
    OUString aTwoSpace( "  " );
    sal_uInt16 nCurrCount = rCurrTab.size();
@@ -1143,33 +1126,31 @@ OfaLanguagesTabPage::OfaLanguagesTabPage( Window* pParent, const SfxItemSet& rSe
        aStr_ = ApplyLreOrRleEmbedding( aStr_ ) +
                aTwoSpace +
                ApplyLreOrRleEmbedding( pLanguageTable->GetString( pCurr->GetLanguage() ) );
        sal_uInt16 nPos = aCurrencyLB.InsertEntry( aStr_ );
        aCurrencyLB.SetEntryData( nPos, (void*) pCurr );
        sal_uInt16 nPos = m_pCurrencyLB->InsertEntry( aStr_ );
        m_pCurrencyLB->SetEntryData( nPos, (void*) pCurr );
    }
    delete pLanguageTable;

    aLocaleSettingLB.SetSelectHdl( LINK( this, OfaLanguagesTabPage, LocaleSettingHdl ) );
    aDatePatternsED.SetModifyHdl( LINK( this, OfaLanguagesTabPage, DatePatternsHdl ) );
    m_pLocaleSettingLB->SetSelectHdl( LINK( this, OfaLanguagesTabPage, LocaleSettingHdl ) );
    m_pDatePatternsED->SetModifyHdl( LINK( this, OfaLanguagesTabPage, DatePatternsHdl ) );

    Link aLink( LINK( this, OfaLanguagesTabPage, SupportHdl ) );
    aAsianSupportCB.SetClickHdl( aLink );
    aCTLSupportCB.SetClickHdl( aLink );
    m_pAsianSupportCB->SetClickHdl( aLink );
    m_pCTLSupportCB->SetClickHdl( aLink );

    aAsianSupportCB.Check( m_bOldAsian = pLangConfig->aLanguageOptions.IsAnyEnabled() );
    aAsianSupportCB.SaveValue();
    m_pAsianSupportCB->Check( m_bOldAsian = pLangConfig->aLanguageOptions.IsAnyEnabled() );
    m_pAsianSupportCB->SaveValue();
    sal_Bool bReadonly = pLangConfig->aLanguageOptions.IsReadOnly(SvtLanguageOptions::E_ALLCJK);
    aAsianSupportCB.Enable(!bReadonly);
    aAsianSupportFI.Show(bReadonly);
    SupportHdl( &aAsianSupportCB );
    m_pAsianSupportCB->Enable(!bReadonly);
    SupportHdl( m_pAsianSupportCB );

    aCTLSupportCB.Check( m_bOldCtl = pLangConfig->aLanguageOptions.IsCTLFontEnabled() );
    aCTLSupportCB.SaveValue();
    m_pCTLSupportCB->Check( m_bOldCtl = pLangConfig->aLanguageOptions.IsCTLFontEnabled() );
    m_pCTLSupportCB->SaveValue();
    bReadonly = pLangConfig->aLanguageOptions.IsReadOnly(SvtLanguageOptions::E_CTLFONT);
    aCTLSupportCB.Enable(!bReadonly);
    aCTLSupportFI.Show(bReadonly);
    SupportHdl( &aCTLSupportCB );
    m_pCTLSupportCB->Enable(!bReadonly);
    SupportHdl( m_pCTLSupportCB );

    aIgnoreLanguageChangeCB.Check( pLangConfig->aSysLocaleOptions.IsIgnoreLanguageChange() );
    m_pIgnoreLanguageChangeCB->Check( pLangConfig->aSysLocaleOptions.IsIgnoreLanguageChange() );
}

OfaLanguagesTabPage::~OfaLanguagesTabPage()
@@ -1236,13 +1217,13 @@ sal_Bool OfaLanguagesTabPage::FillItemSet( SfxItemSet& rSet )
     * b) it was already checked but the CTL language has changed
     */
    if (
         aCTLSupportCB.IsChecked() &&
         (aCTLSupportCB.GetSavedValue() != STATE_CHECK ||
         aComplexLanguageLB.GetSavedValue() != aComplexLanguageLB.GetSelectEntryPos())
         m_pCTLSupportCB->IsChecked() &&
         (m_pCTLSupportCB->GetSavedValue() != STATE_CHECK ||
         m_pComplexLanguageLB->GetSavedValue() != m_pComplexLanguageLB->GetSelectEntryPos())
       )
    {
        //sequence checking has to be switched on depending on the selected CTL language
        LanguageType eCTLLang = aComplexLanguageLB.GetSelectLanguage();
        LanguageType eCTLLang = m_pComplexLanguageLB->GetSelectLanguage();
        sal_Bool bOn = MsLangId::needsSequenceChecking( eCTLLang);
        pLangConfig->aLanguageOptions.SetCTLSequenceCheckingRestricted(bOn);
        pLangConfig->aLanguageOptions.SetCTLSequenceChecking(bOn);
@@ -1253,13 +1234,13 @@ sal_Bool OfaLanguagesTabPage::FillItemSet( SfxItemSet& rSet )
        // handle settings for UI Language
        // a change of setting needs to bring up a warning message
        OUString aLangString;
        sal_Int32 d = (sal_Int32)(sal_IntPtr)aUserInterfaceLB.GetEntryData(aUserInterfaceLB.GetSelectEntryPos());
        sal_Int32 d = (sal_Int32)(sal_IntPtr)m_pUserInterfaceLB->GetEntryData(m_pUserInterfaceLB->GetSelectEntryPos());
        if( d > 0 && seqInstalledLanguages.getLength() > d-1)
            aLangString = seqInstalledLanguages[d-1];

        /*
        if( aUserInterfaceLB.GetSelectEntryPos() > 0)
            aLangString = ConvertLanguageToIsoString(aUserInterfaceLB.GetSelectLanguage());
        if( m_pUserInterfaceLB->GetSelectEntryPos() > 0)
            aLangString = ConvertLanguageToIsoString(m_pUserInterfaceLB->GetSelectLanguage());
        */
        Reference< XMultiServiceFactory > theConfigProvider(
            com::sun::star::configuration::theDefaultProvider::get(
@@ -1305,7 +1286,7 @@ sal_Bool OfaLanguagesTabPage::FillItemSet( SfxItemSet& rSet )
    OUString sLang = pLangConfig->aSysLocaleOptions.GetLocaleConfigString();
    LanguageType eOldLocale = (!sLang.isEmpty() ?
        lcl_LangStringToLangType( sLang ) : LANGUAGE_SYSTEM);
    LanguageType eNewLocale = aLocaleSettingLB.GetSelectLanguage();
    LanguageType eNewLocale = m_pLocaleSettingLB->GetSelectLanguage();
    if ( eOldLocale != eNewLocale )
    {
        // an empty string denotes SYSTEM locale
@@ -1325,17 +1306,17 @@ sal_Bool OfaLanguagesTabPage::FillItemSet( SfxItemSet& rSet )
        aCompatOpts.SetDefault( COMPATIBILITY_PROPERTYNAME_EXPANDWORDSPACE, !bNewCJK );
    }

    if(aDecimalSeparatorCB.GetSavedValue() != aDecimalSeparatorCB.IsChecked())
        pLangConfig->aSysLocaleOptions.SetDecimalSeparatorAsLocale(aDecimalSeparatorCB.IsChecked());
    if(m_pDecimalSeparatorCB->GetSavedValue() != m_pDecimalSeparatorCB->IsChecked())
        pLangConfig->aSysLocaleOptions.SetDecimalSeparatorAsLocale(m_pDecimalSeparatorCB->IsChecked());

    if(aIgnoreLanguageChangeCB.GetSavedValue() != aIgnoreLanguageChangeCB.IsChecked())
        pLangConfig->aSysLocaleOptions.SetIgnoreLanguageChange(aIgnoreLanguageChangeCB.IsChecked());
    if(m_pIgnoreLanguageChangeCB->GetSavedValue() != m_pIgnoreLanguageChangeCB->IsChecked())
        pLangConfig->aSysLocaleOptions.SetIgnoreLanguageChange(m_pIgnoreLanguageChangeCB->IsChecked());

    // Configured currency, for example, USD-en-US or EUR-de-DE, or empty for locale default.
    OUString sOldCurr = pLangConfig->aSysLocaleOptions.GetCurrencyConfigString();
    sal_uInt16 nCurrPos = aCurrencyLB.GetSelectEntryPos();
    sal_uInt16 nCurrPos = m_pCurrencyLB->GetSelectEntryPos();
    const NfCurrencyEntry* pCurr = (const NfCurrencyEntry*)
        aCurrencyLB.GetEntryData( nCurrPos );
        m_pCurrencyLB->GetEntryData( nCurrPos );
    OUString sNewCurr;
    if ( pCurr )
        sNewCurr = SvtSysLocaleOptions::CreateCurrencyConfigString(
@@ -1345,20 +1326,20 @@ sal_Bool OfaLanguagesTabPage::FillItemSet( SfxItemSet& rSet )

    // Configured date acceptance patterns, for example Y-M-D;M-D or empty for
    // locale default.
    if (aDatePatternsED.GetText() != aDatePatternsED.GetSavedValue())
        pLangConfig->aSysLocaleOptions.SetDatePatternsConfigString( aDatePatternsED.GetText());
    if (m_pDatePatternsED->GetText() != m_pDatePatternsED->GetSavedValue())
        pLangConfig->aSysLocaleOptions.SetDatePatternsConfigString( m_pDatePatternsED->GetText());

    SfxObjectShell* pCurrentDocShell = SfxObjectShell::Current();
    Reference< css::linguistic2::XLinguProperties > xLinguProp = LinguMgr::GetLinguPropertySet();
    sal_Bool bCurrentDocCBChecked = aCurrentDocCB.IsChecked();
    if(aCurrentDocCB.IsEnabled())
    sal_Bool bCurrentDocCBChecked = m_pCurrentDocCB->IsChecked();
    if(m_pCurrentDocCB->IsEnabled())
        bLanguageCurrentDoc_Impl = bCurrentDocCBChecked;
    sal_Bool bCurrentDocCBChanged = bCurrentDocCBChecked != aCurrentDocCB.GetSavedValue();
    sal_Bool bCurrentDocCBChanged = bCurrentDocCBChecked != m_pCurrentDocCB->GetSavedValue();

    sal_Bool bValChanged = aWesternLanguageLB.GetSavedValue() != aWesternLanguageLB.GetSelectEntryPos();
    sal_Bool bValChanged = m_pWesternLanguageLB->GetSavedValue() != m_pWesternLanguageLB->GetSelectEntryPos();
    if( (bCurrentDocCBChanged && !bCurrentDocCBChecked) || bValChanged)
    {
        LanguageType eSelectLang = aWesternLanguageLB.GetSelectLanguage();
        LanguageType eSelectLang = m_pWesternLanguageLB->GetSelectLanguage();
        if(!bCurrentDocCBChecked)
        {
            Any aValue;
@@ -1375,10 +1356,10 @@ sal_Bool OfaLanguagesTabPage::FillItemSet( SfxItemSet& rSet )
                SID_ATTR_LANGUAGE));
        }
    }
    bValChanged = aAsianLanguageLB.GetSavedValue() != aAsianLanguageLB.GetSelectEntryPos();
    bValChanged = m_pAsianLanguageLB->GetSavedValue() != m_pAsianLanguageLB->GetSelectEntryPos();
    if( (bCurrentDocCBChanged && !bCurrentDocCBChecked) || bValChanged)
    {
        LanguageType eSelectLang = aAsianLanguageLB.GetSelectLanguage();
        LanguageType eSelectLang = m_pAsianLanguageLB->GetSelectLanguage();
        if(!bCurrentDocCBChecked)
        {
            Any aValue;
@@ -1395,10 +1376,10 @@ sal_Bool OfaLanguagesTabPage::FillItemSet( SfxItemSet& rSet )
                SID_ATTR_CHAR_CJK_LANGUAGE));
        }
    }
    bValChanged = aComplexLanguageLB.GetSavedValue() != aComplexLanguageLB.GetSelectEntryPos();
    bValChanged = m_pComplexLanguageLB->GetSavedValue() != m_pComplexLanguageLB->GetSelectEntryPos();
    if( (bCurrentDocCBChanged && !bCurrentDocCBChecked) || bValChanged)
    {
        LanguageType eSelectLang = aComplexLanguageLB.GetSelectLanguage();
        LanguageType eSelectLang = m_pComplexLanguageLB->GetSelectLanguage();
        if(!bCurrentDocCBChecked)
        {
            Any aValue;
@@ -1416,9 +1397,9 @@ sal_Bool OfaLanguagesTabPage::FillItemSet( SfxItemSet& rSet )
        }
    }

    if(aAsianSupportCB.GetSavedValue() != aAsianSupportCB.IsChecked() )
    if(m_pAsianSupportCB->GetSavedValue() != m_pAsianSupportCB->IsChecked() )
    {
        sal_Bool bChecked = aAsianSupportCB.IsChecked();
        sal_Bool bChecked = m_pAsianSupportCB->IsChecked();
        pLangConfig->aLanguageOptions.SetAll(bChecked);

        //iterate over all bindings to invalidate vertical text direction
@@ -1435,9 +1416,9 @@ sal_Bool OfaLanguagesTabPage::FillItemSet( SfxItemSet& rSet )
        lcl_UpdateAndDelete(pInvalidItems, pBoolItems, STATE_COUNT);
    }

    if ( aCTLSupportCB.GetSavedValue() != aCTLSupportCB.IsChecked() )
    if ( m_pCTLSupportCB->GetSavedValue() != m_pCTLSupportCB->IsChecked() )
    {
        pLangConfig->aLanguageOptions.SetCTLFontEnabled( aCTLSupportCB.IsChecked() );
        pLangConfig->aLanguageOptions.SetCTLFontEnabled( m_pCTLSupportCB->IsChecked() );

        const sal_uInt16 STATE_COUNT = 1;
        SfxBoolItem* pBoolItems[STATE_COUNT];
@@ -1464,25 +1445,24 @@ void OfaLanguagesTabPage::Reset( const SfxItemSet& rSet )
{
    OUString sLang = pLangConfig->aSysLocaleOptions.GetLocaleConfigString();
    if ( !sLang.isEmpty() )
        aLocaleSettingLB.SelectLanguage(lcl_LangStringToLangType(sLang));
        m_pLocaleSettingLB->SelectLanguage(lcl_LangStringToLangType(sLang));
    else
        aLocaleSettingLB.SelectLanguage( LANGUAGE_USER_SYSTEM_CONFIG );
        m_pLocaleSettingLB->SelectLanguage( LANGUAGE_USER_SYSTEM_CONFIG );
    sal_Bool bReadonly = pLangConfig->aSysLocaleOptions.IsReadOnly(SvtSysLocaleOptions::E_LOCALE);
    aLocaleSettingLB.Enable(!bReadonly);
    aLocaleSettingFT.Enable(!bReadonly);
    aLocaleSettingFI.Show(bReadonly);
    m_pLocaleSettingLB->Enable(!bReadonly);
    m_pLocaleSettingFT->Enable(!bReadonly);

    //
    aDecimalSeparatorCB.Check( pLangConfig->aSysLocaleOptions.IsDecimalSeparatorAsLocale());
    aDecimalSeparatorCB.SaveValue();
    m_pDecimalSeparatorCB->Check( pLangConfig->aSysLocaleOptions.IsDecimalSeparatorAsLocale());
    m_pDecimalSeparatorCB->SaveValue();

    aIgnoreLanguageChangeCB.Check( pLangConfig->aSysLocaleOptions.IsIgnoreLanguageChange());
    aIgnoreLanguageChangeCB.SaveValue();
    m_pIgnoreLanguageChangeCB->Check( pLangConfig->aSysLocaleOptions.IsIgnoreLanguageChange());
    m_pIgnoreLanguageChangeCB->SaveValue();

    // let LocaleSettingHdl enable/disable checkboxes for CJK/CTL support
    // #i15812# must be done *before* the configured currency is set
    // and update the decimal separator used for the given locale
    LocaleSettingHdl(&aLocaleSettingLB);
    LocaleSettingHdl(m_pLocaleSettingLB);

    // configured currency, for example, USD-en-US or EUR-de-DE, or empty for locale default
    String aAbbrev;
@@ -1495,12 +1475,11 @@ void OfaLanguagesTabPage::Reset( const SfxItemSet& rSet )
        pCurr = SvNumberFormatter::GetCurrencyEntry( aAbbrev, eLang );
    }
    // if pCurr==NULL the SYSTEM entry is selected
    sal_uInt16 nPos = aCurrencyLB.GetEntryPos( (void*) pCurr );
    aCurrencyLB.SelectEntryPos( nPos );
    sal_uInt16 nPos = m_pCurrencyLB->GetEntryPos( (void*) pCurr );
    m_pCurrencyLB->SelectEntryPos( nPos );
    bReadonly = pLangConfig->aSysLocaleOptions.IsReadOnly(SvtSysLocaleOptions::E_CURRENCY);
    aCurrencyLB.Enable(!bReadonly);
    aCurrencyFT.Enable(!bReadonly);
    aCurrencyFI.Show(bReadonly);
    m_pCurrencyLB->Enable(!bReadonly);
    m_pCurrencyFT->Enable(!bReadonly);

    // date acceptance patterns
    OUString aDatePatternsString = pLangConfig->aSysLocaleOptions.GetDatePatternsConfigString();
@@ -1509,12 +1488,11 @@ void OfaLanguagesTabPage::Reset( const SfxItemSet& rSet )
        const LocaleDataWrapper& rLocaleWrapper( Application::GetSettings().GetLocaleDataWrapper() );
        aDatePatternsString = lcl_getDatePatternsConfigString( rLocaleWrapper);
    }
    aDatePatternsED.SetText( aDatePatternsString);
    m_pDatePatternsED->SetText( aDatePatternsString);
    bReadonly = pLangConfig->aSysLocaleOptions.IsReadOnly(SvtSysLocaleOptions::E_DATEPATTERNS);
    aDatePatternsED.Enable(!bReadonly);
    aDatePatternsFT.Enable(!bReadonly);
    aDatePatternsFI.Show(bReadonly);
    aDatePatternsED.SaveValue();
    m_pDatePatternsED->Enable(!bReadonly);
    m_pDatePatternsFT->Enable(!bReadonly);
    m_pDatePatternsED->SaveValue();

    //western/CJK/CLK language
    LanguageType eCurLang = LANGUAGE_NONE;
@@ -1522,7 +1500,7 @@ void OfaLanguagesTabPage::Reset( const SfxItemSet& rSet )
    LanguageType eCurLangCTL = LANGUAGE_NONE;
    SfxObjectShell* pCurrentDocShell = SfxObjectShell::Current();
    //collect the configuration values first
    aCurrentDocCB.Enable(sal_False);
    m_pCurrentDocCB->Enable(sal_False);
    //
    Any aWestLang;
    Any aCJKLang;
@@ -1551,8 +1529,8 @@ void OfaLanguagesTabPage::Reset( const SfxItemSet& rSet )
    //overwrite them by the values provided by the DocShell
    if(pCurrentDocShell)
    {
        aCurrentDocCB.Enable(sal_True);
        aCurrentDocCB.Check(bLanguageCurrentDoc_Impl);
        m_pCurrentDocCB->Enable(sal_True);
        m_pCurrentDocCB->Check(bLanguageCurrentDoc_Impl);
        const SfxPoolItem* pLang;
        if( SFX_ITEM_SET == rSet.GetItemState(SID_ATTR_LANGUAGE, sal_False, &pLang))
        {
@@ -1576,51 +1554,48 @@ void OfaLanguagesTabPage::Reset( const SfxItemSet& rSet )
        }
    }
    if(LANGUAGE_NONE == eCurLang || LANGUAGE_DONTKNOW == eCurLang)
        aWesternLanguageLB.SelectLanguage(LANGUAGE_NONE);
        m_pWesternLanguageLB->SelectLanguage(LANGUAGE_NONE);
    else
        aWesternLanguageLB.SelectLanguage(eCurLang);
        m_pWesternLanguageLB->SelectLanguage(eCurLang);

    if(LANGUAGE_NONE == eCurLangCJK || LANGUAGE_DONTKNOW == eCurLangCJK)
        aAsianLanguageLB.SelectLanguage(LANGUAGE_NONE);
        m_pAsianLanguageLB->SelectLanguage(LANGUAGE_NONE);
    else
        aAsianLanguageLB.SelectLanguage(eCurLangCJK);
        m_pAsianLanguageLB->SelectLanguage(eCurLangCJK);

    if(LANGUAGE_NONE == eCurLangCTL || LANGUAGE_DONTKNOW == eCurLangCTL)
        aComplexLanguageLB.SelectLanguage(LANGUAGE_NONE);
        m_pComplexLanguageLB->SelectLanguage(LANGUAGE_NONE);
    else
        aComplexLanguageLB.SelectLanguage(eCurLangCTL);
        m_pComplexLanguageLB->SelectLanguage(eCurLangCTL);

    aWesternLanguageLB.SaveValue();
    aAsianLanguageLB.SaveValue();
    aComplexLanguageLB.SaveValue();
    aIgnoreLanguageChangeCB.SaveValue();
    aCurrentDocCB.SaveValue();
    m_pWesternLanguageLB->SaveValue();
    m_pAsianLanguageLB->SaveValue();
    m_pComplexLanguageLB->SaveValue();
    m_pIgnoreLanguageChangeCB->SaveValue();
    m_pCurrentDocCB->SaveValue();

    sal_Bool bEnable = !pLangConfig->aLinguConfig.IsReadOnly( "DefaultLocale" );
    aWesternLanguageFT.Enable( bEnable );
    aWesternLanguageLB.Enable( bEnable );
    m_pWesternLanguageFT->Enable( bEnable );
    m_pWesternLanguageLB->Enable( bEnable );


    aWesternLanguageFI.Show(!bEnable);

    // #i15812# controls for CJK/CTL already enabled/disabled from LocaleSettingHdl
#if 0
    bEnable = ( !pLangConfig->aLinguConfig.IsReadOnly( "DefaultLocale_CJK" ) && aAsianSupportCB.IsChecked() );
    aAsianLanguageFT.Enable( bEnable );
    aAsianLanguageLB.Enable( bEnable );
    bEnable = ( !pLangConfig->aLinguConfig.IsReadOnly( "DefaultLocale_CJK" ) && m_pAsianSupportCB->IsChecked() );
    m_pAsianLanguageLB->Enable( bEnable );

    bEnable = ( !pLangConfig->aLinguConfig.IsReadOnly( "DefaultLocale_CTL" ) && aCTLSupportCB.IsChecked() );
    aComplexLanguageFT.Enable( bEnable );
    aComplexLanguageLB.Enable( bEnable );
    bEnable = ( !pLangConfig->aLinguConfig.IsReadOnly( "DefaultLocale_CTL" ) && m_pCTLSupportCB->IsChecked() );
    m_pComplexLanguageLB->Enable( bEnable );
#endif
    // check the box "For the current document only"
    // set the focus to the Western Language box
    const SfxPoolItem* pLang = 0;
    if ( SFX_ITEM_SET == rSet.GetItemState(SID_SET_DOCUMENT_LANGUAGE, sal_False, &pLang ) &&( (const SfxBoolItem*)pLang)->GetValue() == sal_True )
    {
        aWesternLanguageLB.GrabFocus();
        aCurrentDocCB.Enable(sal_True);
        aCurrentDocCB.Check(sal_True);
        m_pWesternLanguageLB->GrabFocus();
        m_pCurrentDocCB->Enable(sal_True);
        m_pCurrentDocCB->Check(sal_True);
    }
}

@@ -1629,23 +1604,19 @@ IMPL_LINK(  OfaLanguagesTabPage, SupportHdl, CheckBox*, pBox )
    DBG_ASSERT( pBox, "OfaLanguagesTabPage::SupportHdl(): pBox invalid" );

    sal_Bool bCheck = pBox->IsChecked();
    if ( &aAsianSupportCB == pBox )
    if ( m_pAsianSupportCB == pBox )
    {
        sal_Bool bReadonly = pLangConfig->aLinguConfig.IsReadOnly("DefaultLocale_CJK");
        bCheck = ( bCheck && !bReadonly );
        aAsianLanguageFT.Enable( bCheck );
        aAsianLanguageLB.Enable( bCheck );
        aAsianLanguageFI.Show(bReadonly);
        m_pAsianLanguageLB->Enable( bCheck );
        if( pBox->IsEnabled() )
            m_bOldAsian = bCheck;
    }
    else if ( &aCTLSupportCB == pBox )
    else if ( m_pCTLSupportCB == pBox )
    {
        sal_Bool bReadonly = pLangConfig->aLinguConfig.IsReadOnly("DefaultLocale_CTL");
        bCheck = ( bCheck && !bReadonly  );
        aComplexLanguageFT.Enable( bCheck );
        aComplexLanguageLB.Enable( bCheck );
        aComplexLanguageFI.Show(bReadonly);
        m_pComplexLanguageLB->Enable( bCheck );
        if( pBox->IsEnabled() )
            m_bOldCtl = bCheck;
    }
@@ -1657,15 +1628,15 @@ IMPL_LINK(  OfaLanguagesTabPage, SupportHdl, CheckBox*, pBox )

namespace
{
    void lcl_checkLanguageCheckBox(CheckBox& _rCB,sal_Bool _bNewValue,sal_Bool _bOldValue)
    void lcl_checkLanguageCheckBox(CheckBox* _rCB,sal_Bool _bNewValue,sal_Bool _bOldValue)
    {
        if ( _bNewValue )
            _rCB.Check(sal_True);
            _rCB->Check(sal_True);
        else
            _rCB.Check( _bOldValue );
            _rCB->Check( _bOldValue );
// #i15082# do not call SaveValue() in running dialog...
//      _rCB.SaveValue();
        _rCB.Enable( !_bNewValue );
        _rCB->Enable( !_bNewValue );
    }
}

@@ -1678,40 +1649,40 @@ IMPL_LINK( OfaLanguagesTabPage, LocaleSettingHdl, SvxLanguageBox*, pBox )
    if(!pLangConfig->aLanguageOptions.IsReadOnly(SvtLanguageOptions::E_CTLFONT))
    {
        bool bIsCTLFixed = (nType & SCRIPTTYPE_COMPLEX) != 0;
        lcl_checkLanguageCheckBox(aCTLSupportCB, bIsCTLFixed, m_bOldCtl);
        SupportHdl( &aCTLSupportCB );
        lcl_checkLanguageCheckBox(m_pCTLSupportCB, bIsCTLFixed, m_bOldCtl);
        SupportHdl( m_pCTLSupportCB );
    }
    // second check if CJK must be enabled
    // #103299# - if CJK support is not readonly
    if(!pLangConfig->aLanguageOptions.IsReadOnly(SvtLanguageOptions::E_ALLCJK))
    {
        bool bIsCJKFixed = (nType & SCRIPTTYPE_ASIAN) != 0;
        lcl_checkLanguageCheckBox(aAsianSupportCB, bIsCJKFixed, m_bOldAsian);
        SupportHdl( &aAsianSupportCB );
        lcl_checkLanguageCheckBox(m_pAsianSupportCB, bIsCJKFixed, m_bOldAsian);
        SupportHdl( m_pAsianSupportCB );
    }

    sal_uInt16 nPos;
    if ( eLang == LANGUAGE_USER_SYSTEM_CONFIG )
        nPos = aCurrencyLB.GetEntryPos( (void*) NULL );
        nPos = m_pCurrencyLB->GetEntryPos( (void*) NULL );
    else
    {
        const NfCurrencyEntry* pCurr = &SvNumberFormatter::GetCurrencyEntry( eLang );
        nPos = aCurrencyLB.GetEntryPos( (void*) pCurr );
        nPos = m_pCurrencyLB->GetEntryPos( (void*) pCurr );
    }
    aCurrencyLB.SelectEntryPos( nPos );
    m_pCurrencyLB->SelectEntryPos( nPos );

    // obtain corresponding locale data
    LanguageTag aLanguageTag( eLang);
    LocaleDataWrapper aLocaleWrapper( aLanguageTag );

    // update the decimal separator key of the related CheckBox
    OUString sTempLabel(sDecimalSeparatorLabel);
    OUString sTempLabel(m_pDecimalSeparatorCB->GetText());
    sTempLabel = sTempLabel.replaceFirst("%1", aLocaleWrapper.getNumDecimalSep() );
    aDecimalSeparatorCB.SetText(sTempLabel);
    m_pDecimalSeparatorCB->SetText(sTempLabel);

    // update the date acceptance patterns
    OUString aDatePatternsString = lcl_getDatePatternsConfigString( aLocaleWrapper);
    aDatePatternsED.SetText( aDatePatternsString);
    m_pDatePatternsED->SetText( aDatePatternsString);

    return 0;
}
diff --git a/cui/source/options/optgdlg.hrc b/cui/source/options/optgdlg.hrc
deleted file mode 100644
index e4a5468..0000000
--- a/cui/source/options/optgdlg.hrc
+++ /dev/null
@@ -1,71 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */
#ifndef _SVX_OPTGDLG_HRC
#define _SVX_OPTGDLG_HRC
#include <svtools/controldims.hrc>

// tabpage languages -----------------------------------------------------

#define FL_UI_LANG              1
#define FL_LINGU_LANG           4
#define FT_WEST_LANG            5
#define LB_WEST_LANG            6
#define FT_ASIAN_LANG           7
#define LB_ASIAN_LANG           8
#define FT_COMPLEX_LANG         9
#define LB_COMPLEX_LANG         10
#define CB_CURRENT_DOC          11
#define FL_ENHANCED             12
#define CB_ASIANSUPPORT         13
#define CB_CTLSUPPORT           15
#define FT_LOCALESETTING        16
#define LB_LOCALESETTING        17
#define FT_CURRENCY             18
#define LB_CURRENCY             19
#define FI_WEST_LANG            20
#define FI_ASIAN_LANG           21
#define FI_COMPLEX_LANG         22
#define FI_ASIANSUPPORT         23
#define FI_CTLSUPPORT           24
#define FI_LOCALESETTING        25
#define FI_CURRENCY             26
#define FT_DECIMALSEPARATOR     27
#define CB_DECIMALSEPARATOR     28
#define FI_USERINTERFACE        29
#define FT_USERINTERFACE        30
#define LB_USERINTERFACE        31
#define FI_DATEPATTERNS         32
#define FT_DATEPATTERNS         33
#define ED_DATEPATTERNS         34
#define CB_IGNORE_LANG_CHANGE   35

#define FL_FILEDLG                  53
#define FI_FILEDLG_RO               54
#define CB_FILEDLG                  55
#define FT_GRAPHICCACHE_UNIT        56
#define FT_GRAPHICOBJECTCACHE_UNIT  57
#define FT_GRAPHICOBJECTTIME_UNIT   58
#define FL_DOCSTATUS                60
#define CB_DOCSTATUS                61
#define CB_SAVE_ALWAYS              74
#endif // #ifndef _SVX_OPTGDLG_HRC

// ******************************************************************* EOF

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/optgdlg.hxx b/cui/source/options/optgdlg.hxx
index e1a2436..c89972a 100644
--- a/cui/source/options/optgdlg.hxx
+++ b/cui/source/options/optgdlg.hxx
@@ -24,7 +24,6 @@
#include <vcl/fixed.hxx>
#include <sfx2/tabdlg.hxx>
#include <svx/langbox.hxx>
#include <readonlyimage.hxx>

// predeclarations
class CanvasSettings;
@@ -135,40 +134,23 @@ public:
struct LanguageConfig_Impl;
class OfaLanguagesTabPage : public SfxTabPage
{
    FixedLine       aUILanguageGB;
    ReadOnlyImage   aLocaleSettingFI;
    FixedText       aUserInterfaceFT;
    ListBox         aUserInterfaceLB;
    FixedText       aLocaleSettingFT;
    SvxLanguageBox  aLocaleSettingLB;
    ReadOnlyImage   aCurrencyFI;
    FixedText       aDecimalSeparatorFT;
    CheckBox        aDecimalSeparatorCB;
    FixedText       aCurrencyFT;
    ListBox         aCurrencyLB;
    ReadOnlyImage   aDatePatternsFI;
    FixedText       aDatePatternsFT;
    Edit            aDatePatternsED;
    ListBox*        m_pUserInterfaceLB;
    FixedText*      m_pLocaleSettingFT;
    SvxLanguageBox* m_pLocaleSettingLB;
    CheckBox*       m_pDecimalSeparatorCB;
    FixedText*      m_pCurrencyFT;
    ListBox*        m_pCurrencyLB;
    FixedText*      m_pDatePatternsFT;
    Edit*           m_pDatePatternsED;

    FixedLine       aLinguLanguageGB;
    ReadOnlyImage   aWesternLanguageFI;
    FixedText       aWesternLanguageFT;
    SvxLanguageBox  aWesternLanguageLB;
    ReadOnlyImage   aAsianLanguageFI;
    FixedText       aAsianLanguageFT;
    SvxLanguageBox  aAsianLanguageLB;
    ReadOnlyImage   aComplexLanguageFI;
    FixedText       aComplexLanguageFT;
    SvxLanguageBox  aComplexLanguageLB;
    CheckBox        aCurrentDocCB;
    FixedLine       aEnhancedFL;
    ReadOnlyImage   aAsianSupportFI;
    CheckBox        aAsianSupportCB;
    ReadOnlyImage   aCTLSupportFI;
    CheckBox        aCTLSupportCB;
    CheckBox        aIgnoreLanguageChangeCB;

    const String    sDecimalSeparatorLabel;
    SvxLanguageBox* m_pWesternLanguageLB;
    FixedText*      m_pWesternLanguageFT;
    SvxLanguageBox* m_pAsianLanguageLB;
    SvxLanguageBox* m_pComplexLanguageLB;
    CheckBox*       m_pCurrentDocCB;
    CheckBox*       m_pAsianSupportCB;
    CheckBox*       m_pCTLSupportCB;
    CheckBox*       m_pIgnoreLanguageChangeCB;

    sal_Bool        m_bOldAsian;
    sal_Bool        m_bOldCtl;
diff --git a/cui/source/options/optgdlg.src b/cui/source/options/optgdlg.src
index df1aabe..9beeeea 100644
--- a/cui/source/options/optgdlg.src
+++ b/cui/source/options/optgdlg.src
@@ -18,242 +18,11 @@
 */

#include <cuires.hrc>
#include "optgdlg.hrc"
#include "helpid.hrc"

// *******************************************************************

TabPage OFA_TP_LANGUAGES
{
    HelpID = HID_OFA_TP_LANGUAGES ;
    SVLook = TRUE ;
    Size = MAP_APPFONT ( TP_WIDTH , TP_HEIGHT ) ;
    Hide = TRUE ;
    FixedLine FL_UI_LANG
    {
        Pos = MAP_APPFONT ( 6 , 3 ) ;
        Size = MAP_APPFONT ( 248 , 8 ) ;
        Text [ en-US ] = "Language of";
    };
    FixedImage FI_USERINTERFACE
    {
        Pos = MAP_APPFONT ( 5 , 17-1 ) ;
        Size = MAP_APPFONT ( 6 , 6 ) ;
        Hide = TRUE;
    };
    FixedText FT_USERINTERFACE
    {
        Pos = MAP_APPFONT ( 12 , 16-1 ) ;
        Size = MAP_APPFONT ( 108 , 8 ) ;
        Text [ en-US ] = "~User interface";
    };
    ListBox LB_USERINTERFACE
    {
        HelpID = "cui:ListBox:OFA_TP_LANGUAGES:LB_USERINTERFACE";
        Pos = MAP_APPFONT ( 123 , 14-1 ) ;
        Size = MAP_APPFONT ( 125 , 60 ) ;
        DropDown = TRUE ;
        Border = TRUE ;
        TabStop = TRUE ;
        Sort = TRUE;
    };
    FixedImage FI_LOCALESETTING
    {
        Pos = MAP_APPFONT ( 5 , 32-2 ) ;
        Size = MAP_APPFONT ( 6 , 6 ) ;
        Hide = TRUE;
    };
    FixedText FT_LOCALESETTING
    {
        Pos = MAP_APPFONT ( 12 , 31-2 ) ;
        Size = MAP_APPFONT ( 108 , 8 ) ;
        Text [ en-US ] = "Locale setting";
    };
    ListBox LB_LOCALESETTING
    {
        HelpID = "cui:ListBox:OFA_TP_LANGUAGES:LB_LOCALESETTING";
        Pos = MAP_APPFONT ( 123 , 30-2 ) ;
        Size = MAP_APPFONT ( 125 , 60 ) ;
        DropDown = TRUE ;
        Border = TRUE ;
        TabStop = TRUE ;
        Sort = TRUE;
    };
    FixedText FT_DECIMALSEPARATOR
    {
        Pos = MAP_APPFONT ( 12 , 46-3 ) ;
        Size = MAP_APPFONT ( 108 , 8 ) ;
        Text [ en-US ] = "Decimal separator key";
    };
    CheckBox CB_DECIMALSEPARATOR
    {
        HelpID = "cui:CheckBox:OFA_TP_LANGUAGES:CB_DECIMALSEPARATOR";
        Pos = MAP_APPFONT ( 123 , 46-3) ;
        Size = MAP_APPFONT ( 125 , RSC_CD_CHECKBOX_HEIGHT ) ;
        Text [ en-US ] = "~Same as locale setting ( %1 )";
    };
    FixedImage FI_CURRENCY
    {
        Pos = MAP_APPFONT ( 5 , 63-4 ) ;
        Size = MAP_APPFONT ( 6 , 6 ) ;
        Hide = TRUE;
    };
    FixedText FT_CURRENCY
    {
        Pos = MAP_APPFONT ( 12 , 61-4 ) ;
        Size = MAP_APPFONT ( 108 , 8 ) ;
        Text [ en-US ] = "~Default currency";
    };
    ListBox LB_CURRENCY
    {
        HelpID = "cui:ListBox:OFA_TP_LANGUAGES:LB_CURRENCY";
        Pos = MAP_APPFONT ( 123 , 59-4 ) ;
        Size = MAP_APPFONT ( 125 , 60 ) ;
        DropDown = TRUE ;
        Border = TRUE ;
        TabStop = TRUE ;
        Sort = TRUE;
    };
    FixedImage FI_DATEPATTERNS
    {
        Pos = MAP_APPFONT ( 5 , 78-5 ) ;
        Size = MAP_APPFONT ( 6 , 6 ) ;
        Hide = TRUE;
    };
    FixedText FT_DATEPATTERNS
    {
        Pos = MAP_APPFONT ( 12 , 76-5 ) ;
        Size = MAP_APPFONT ( 108 , 8 ) ;
        Text [ en-US ] = "Date acceptance ~patterns";
    };
    Edit ED_DATEPATTERNS
    {
        HelpID = "cui:Edit:OFA_TP_LANGUAGES:ED_DATEPATTERNS";
        Pos = MAP_APPFONT ( 123 , 74-5 ) ;
        Size = MAP_APPFONT ( 125 , 12 ) ;
        Border = TRUE ;
        TabStop = TRUE ;
    };
    FixedLine FL_LINGU_LANG
    {
        Pos = MAP_APPFONT ( 6 , 92-5 ) ;
        Size = MAP_APPFONT ( 248 , 8 ) ;
        Text [ en-US ] = "Default languages for documents";
    };
    FixedImage FI_WEST_LANG
    {
        Pos = MAP_APPFONT ( 5 , 107-6 ) ;
        Size = MAP_APPFONT ( 6 , 6 ) ;
        Hide = TRUE;
    };
    FixedText FT_WEST_LANG
    {
        Pos = MAP_APPFONT ( 12 , 105-6 ) ;
        Size = MAP_APPFONT ( 108 , 8 ) ;
        Text [ en-US ] = "Western";
    };

    ListBox LB_WEST_LANG
    {
        HelpID = "cui:ListBox:OFA_TP_LANGUAGES:LB_WEST_LANG";
        Pos = MAP_APPFONT ( 123 ,  103-6 ) ;
        Size = MAP_APPFONT ( 125 , 60 ) ;
        DropDown = TRUE ;
        Border = TRUE ;
        TabStop = TRUE ;
        Sort = TRUE;
    };
    FixedImage FI_ASIAN_LANG
    {
        Pos = MAP_APPFONT ( 5 , 123-7 ) ;
        Size = MAP_APPFONT ( 6 , 6 ) ;
        Hide = TRUE;
    };
    FixedText FT_ASIAN_LANG
    {
        Pos = MAP_APPFONT ( 12 , 121-7 ) ;
        Size = MAP_APPFONT ( 108 , 8 ) ;
        Text [ en-US ] = "Asian";
    };
    ListBox LB_ASIAN_LANG
    {
        HelpID = "cui:ListBox:OFA_TP_LANGUAGES:LB_ASIAN_LANG";
        Pos = MAP_APPFONT ( 123 , 119-7 ) ;
        Size = MAP_APPFONT ( 125 , 60 ) ;
        DropDown = TRUE ;
        Border = TRUE ;
        TabStop = TRUE ;
        Sort = TRUE;
    };
    FixedImage FI_COMPLEX_LANG
    {
        Pos = MAP_APPFONT ( 5 , 139-8 ) ;
        Size = MAP_APPFONT ( 6 , 6 ) ;
        Hide = TRUE;
    };
    FixedText FT_COMPLEX_LANG
    {
        Pos = MAP_APPFONT ( 12 , 137-8 ) ;
        Size = MAP_APPFONT ( 108 , 8 ) ;
        Text [ en-US ] = "C~TL";
    };
    ListBox LB_COMPLEX_LANG
    {
        HelpID = "cui:ListBox:OFA_TP_LANGUAGES:LB_COMPLEX_LANG";
        Pos = MAP_APPFONT ( 123 , 135-8 ) ;
        Size = MAP_APPFONT ( 125 , 60 ) ;
        DropDown = TRUE ;
        Border = TRUE ;
        TabStop = TRUE ;
        Sort = TRUE;
    };
    CheckBox CB_CURRENT_DOC
    {
        HelpID = "cui:CheckBox:OFA_TP_LANGUAGES:CB_CURRENT_DOC";
        Pos = MAP_APPFONT ( 123 , 150-8 ) ;
        Size = MAP_APPFONT ( 125 , RSC_CD_CHECKBOX_HEIGHT ) ;
        Text [ en-US ] = "For the current document only";
    };
    FixedLine FL_ENHANCED
    {
        Pos = MAP_APPFONT ( 6 , 160-8 ) ;
        Size = MAP_APPFONT ( 248 , 8 ) ;
        Text [ en-US ] = "Enhanced language support";
    };
    FixedImage FI_ASIANSUPPORT
    {
        Pos = MAP_APPFONT ( 5 , 175-9 ) ;
        Size = MAP_APPFONT ( 6 , 6 ) ;
        Hide = TRUE;
    };
    CheckBox CB_ASIANSUPPORT
    {
        HelpID = "cui:CheckBox:OFA_TP_LANGUAGES:CB_ASIANSUPPORT";
        Pos = MAP_APPFONT ( 12 , 173-9 ) ;
        Size = MAP_APPFONT ( 236 ,RSC_CD_CHECKBOX_HEIGHT ) ;
        Text [ en-US ] = "Show UI elements for East Asia~n writings";
    };
    FixedImage FI_CTLSUPPORT
    {
        Pos = MAP_APPFONT ( 5 , 190-10 ) ;
        Size = MAP_APPFONT ( 6 , 6 ) ;
        Hide = TRUE;
    };
    CheckBox CB_CTLSUPPORT
    {
        HelpID = "cui:CheckBox:OFA_TP_LANGUAGES:CB_CTLSUPPORT";
        Pos = MAP_APPFONT ( 12 , 188-11 ) ;
        Size = MAP_APPFONT ( 236 , RSC_CD_CHECKBOX_HEIGHT ) ;
        Text [ en-US ] = "Show UI elements for B~i-Directional writing";
    };
    CheckBox CB_IGNORE_LANG_CHANGE
    {
        HelpID = "cui:CheckBox:OFA_TP_LANGUAGES:CB_IGNORE_LANG_CHANGE";
        Pos = MAP_APPFONT ( 12 , 188-11+13 ) ;
        Size = MAP_APPFONT ( 236 , RSC_CD_CHECKBOX_HEIGHT ) ;
        Text [ en-US ] = "Ignore s~ystem input language";
    };
};

InfoBox RID_SVX_MSGBOX_LANGUAGE_RESTART
{
diff --git a/cui/source/options/optinet2.hxx b/cui/source/options/optinet2.hxx
index c19ff8d..fcc935c 100644
--- a/cui/source/options/optinet2.hxx
+++ b/cui/source/options/optinet2.hxx
@@ -30,7 +30,6 @@
#include <unotools/configitem.hxx>

#include <svtools/headbar.hxx>
#include <readonlyimage.hxx>

namespace svx {
    class SecurityOptionsDialog;
diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx
index 774d335..d4bff5d 100644
--- a/cui/source/options/optpath.cxx
+++ b/cui/source/options/optpath.cxx
@@ -50,7 +50,6 @@
#include <com/sun/star/util/PathSettings.hpp>
#include <officecfg/Office/Common.hxx>
#include "optHeaderTabListbox.hxx"
#include <readonlyimage.hxx>
#include <vcl/help.hxx>

using namespace ::com::sun::star::beans;
diff --git a/cui/source/options/optsave.hxx b/cui/source/options/optsave.hxx
index 111f0d8..eef46ba 100644
--- a/cui/source/options/optsave.hxx
+++ b/cui/source/options/optsave.hxx
@@ -25,7 +25,6 @@
#include <vcl/lstbox.hxx>
#include <sfx2/tabdlg.hxx>
#include <com/sun/star/uno/Reference.h>
#include <readonlyimage.hxx>

namespace com { namespace sun { namespace star {
  namespace beans {
diff --git a/cui/source/options/readonlyimage.cxx b/cui/source/options/readonlyimage.cxx
deleted file mode 100644
index dd819cd..0000000
--- a/cui/source/options/readonlyimage.cxx
+++ /dev/null
@@ -1,60 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */

#include <readonlyimage.hxx>
#include <vcl/help.hxx>
#include <dialmgr.hxx>
#include <cuires.hrc>

ReadOnlyImage::ReadOnlyImage(Window* pParent, const ResId rResId) :
            FixedImage(pParent, rResId)
{
    SetImage( Image(CUI_RES( RID_SVXBMP_LOCK )));
}

ReadOnlyImage::~ReadOnlyImage()
{
}

void ReadOnlyImage::RequestHelp( const HelpEvent& rHEvt )
{
    if( Help::IsBalloonHelpEnabled() || Help::IsQuickHelpEnabled() )
    {
        Rectangle   aLogicPix( LogicToPixel( Rectangle( Point(), GetOutputSize() ) ) );
        Rectangle   aScreenRect( OutputToScreenPixel( aLogicPix.TopLeft() ),
                                     OutputToScreenPixel( aLogicPix.BottomRight() ) );

        String aStr(ReadOnlyImage::GetHelpTip());
        if ( Help::IsBalloonHelpEnabled() )
            Help::ShowBalloon( this, rHEvt.GetMousePosPixel(), aScreenRect,
            aStr );
        else if ( Help::IsQuickHelpEnabled() )
            Help::ShowQuickHelp( this, aScreenRect, aStr );
    }
    else
        Window::RequestHelp( rHEvt );
}

const String& ReadOnlyImage::GetHelpTip()
{
     static String  aStr(CUI_RES(RID_SVXSTR_READONLY_CONFIG_TIP));
     return aStr;
}

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/readonlyimage.hxx b/cui/source/options/readonlyimage.hxx
deleted file mode 100644
index f4532c6..0000000
--- a/cui/source/options/readonlyimage.hxx
+++ /dev/null
@@ -1,36 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */
#ifndef _SVX_READONLYIMAGE_HXX
#define _SVX_READONLYIMAGE_HXX

#include <vcl/fixed.hxx>

class ReadOnlyImage : public FixedImage
{
public:
    ReadOnlyImage(Window* pParent, const ResId rResId);
    ~ReadOnlyImage();

    virtual void        RequestHelp( const HelpEvent& rHEvt );
    static const String& GetHelpTip();

};
#endif  //

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/readonlyimage.src b/cui/source/options/readonlyimage.src
deleted file mode 100644
index 2757d35..0000000
--- a/cui/source/options/readonlyimage.src
+++ /dev/null
@@ -1,35 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */

#include <cuires.hrc>

String RID_SVXSTR_READONLY_CONFIG_TIP
{
    Text [ en-US ] = "This setting is protected by the Administrator";
};
Image RID_SVXBMP_LOCK
{
    ImageBitmap = Bitmap
    {
        File = "lock.bmp";
    };
    MaskColor = Color { Red=0xffff; Green=0x0000; Blue=0xffff; };
};

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/securityoptions.hxx b/cui/source/options/securityoptions.hxx
index 2b49d20..8a0766d 100644
--- a/cui/source/options/securityoptions.hxx
+++ b/cui/source/options/securityoptions.hxx
@@ -23,7 +23,6 @@
#include <vcl/dialog.hxx>
#include <vcl/fixed.hxx>

#include "readonlyimage.hxx"

class SvtSecurityOptions;

diff --git a/cui/uiconfig/ui/optlanguagespage.ui b/cui/uiconfig/ui/optlanguagespage.ui
new file mode 100644
index 0000000..8321676
--- /dev/null
+++ b/cui/uiconfig/ui/optlanguagespage.ui
@@ -0,0 +1,389 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <!-- interface-requires gtk+ 3.0 -->
  <object class="GtkBox" id="OptLanguagesPage">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="border_width">6</property>
    <property name="orientation">vertical</property>
    <property name="spacing">12</property>
    <child>
      <object class="GtkFrame" id="frame1">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <property name="label_xalign">0</property>
        <property name="shadow_type">none</property>
        <child>
          <object class="GtkAlignment" id="alignment1">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="top_padding">5</property>
            <property name="left_padding">12</property>
            <child>
              <object class="GtkGrid" id="grid1">
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <property name="row_spacing">6</property>
                <property name="column_homogeneous">True</property>
                <child>
                  <object class="GtkLabel" id="label4">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="xalign">0</property>
                    <property name="label" translatable="yes">_User interface</property>
                    <property name="use_underline">True</property>
                    <property name="mnemonic_widget">userinterface</property>
                  </object>
                  <packing>
                    <property name="left_attach">0</property>
                    <property name="top_attach">0</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkLabel" id="localesettingFT">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="xalign">0</property>
                    <property name="label" translatable="yes">Locale setting</property>
                  </object>
                  <packing>
                    <property name="left_attach">0</property>
                    <property name="top_attach">1</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkLabel" id="label6">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="xalign">0</property>
                    <property name="label" translatable="yes">Decimal separator key</property>
                  </object>
                  <packing>
                    <property name="left_attach">0</property>
                    <property name="top_attach">2</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkLabel" id="defaultcurrency">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="xalign">0</property>
                    <property name="label" translatable="yes">_Defalut currency</property>
                    <property name="use_underline">True</property>
                    <property name="mnemonic_widget">currencylb</property>
                  </object>
                  <packing>
                    <property name="left_attach">0</property>
                    <property name="top_attach">3</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkLabel" id="dataaccpatterns">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="xalign">0</property>
                    <property name="label" translatable="yes">Date acceptance _patterns</property>
                    <property name="use_underline">True</property>
                    <property name="mnemonic_widget">datepatterns</property>
                  </object>
                  <packing>
                    <property name="left_attach">0</property>
                    <property name="top_attach">4</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="svxcorelo-SvxLanguageBox" id="userinterface">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                  </object>
                  <packing>
                    <property name="left_attach">1</property>
                    <property name="top_attach">0</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="svxcorelo-SvxLanguageBox" id="localesetting">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                  </object>
                  <packing>
                    <property name="left_attach">1</property>
                    <property name="top_attach">1</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="svxcorelo-SvxLanguageBox" id="currencylb">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                  </object>
                  <packing>
                    <property name="left_attach">1</property>
                    <property name="top_attach">3</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkEntry" id="datepatterns">
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="invisible_char">●</property>
                  </object>
                  <packing>
                    <property name="left_attach">1</property>
                    <property name="top_attach">4</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkCheckButton" id="decimalseparator">
                    <property name="label" translatable="yes">_Same as locale setting ( %1 )</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">False</property>
                    <property name="use_underline">True</property>
                    <property name="xalign">0</property>
                    <property name="draw_indicator">True</property>
                  </object>
                  <packing>
                    <property name="left_attach">1</property>
                    <property name="top_attach">2</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
              </object>
            </child>
          </object>
        </child>
        <child type="label">
          <object class="GtkLabel" id="label1">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="label" translatable="yes">Language of</property>
            <attributes>
              <attribute name="weight" value="semibold"/>
            </attributes>
          </object>
        </child>
      </object>
      <packing>
        <property name="expand">False</property>
        <property name="fill">True</property>
        <property name="position">0</property>
      </packing>
    </child>
    <child>
      <object class="GtkFrame" id="frame2">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <property name="label_xalign">0</property>
        <property name="shadow_type">none</property>
        <child>
          <object class="GtkAlignment" id="alignment2">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="top_padding">6</property>
            <property name="left_padding">12</property>
            <child>
              <object class="GtkGrid" id="grid2">
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <property name="row_spacing">6</property>
                <property name="column_homogeneous">True</property>
                <child>
                  <object class="GtkCheckButton" id="asiansupport">
                    <property name="label" translatable="yes">Asian</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">False</property>
                    <property name="use_underline">True</property>
                    <property name="xalign">0</property>
                    <property name="draw_indicator">True</property>
                  </object>
                  <packing>
                    <property name="left_attach">0</property>
                    <property name="top_attach">1</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkCheckButton" id="ctlsupport">
                    <property name="label" translatable="yes">C_TL</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">False</property>
                    <property name="use_underline">True</property>
                    <property name="xalign">0</property>
                    <property name="draw_indicator">True</property>
                  </object>
                  <packing>
                    <property name="left_attach">0</property>
                    <property name="top_attach">2</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkLabel" id="western">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="xalign">0</property>
                    <property name="label" translatable="yes">Western</property>
                  </object>
                  <packing>
                    <property name="left_attach">0</property>
                    <property name="top_attach">0</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkCheckButton" id="currentdoc">
                    <property name="label" translatable="yes">For the current document only</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">False</property>
                    <property name="xalign">0</property>
                    <property name="draw_indicator">True</property>
                  </object>
                  <packing>
                    <property name="left_attach">1</property>
                    <property name="top_attach">3</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="svxcorelo-SvxLanguageBox" id="westernlanguage">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                  </object>
                  <packing>
                    <property name="left_attach">1</property>
                    <property name="top_attach">0</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="svxcorelo-SvxLanguageBox" id="asianlanguage">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                  </object>
                  <packing>
                    <property name="left_attach">1</property>
                    <property name="top_attach">1</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="svxcorelo-SvxLanguageBox" id="complexlanguage">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                  </object>
                  <packing>
                    <property name="left_attach">1</property>
                    <property name="top_attach">2</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <placeholder/>
                </child>
              </object>
            </child>
          </object>
        </child>
        <child type="label">
          <object class="GtkLabel" id="label2">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="label" translatable="yes">Default languages for documents</property>
            <attributes>
              <attribute name="weight" value="semibold"/>
            </attributes>
          </object>
        </child>
      </object>
      <packing>
        <property name="expand">False</property>
        <property name="fill">True</property>
        <property name="position">1</property>
      </packing>
    </child>
    <child>
      <object class="GtkFrame" id="frame3">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <property name="label_xalign">0</property>
        <property name="shadow_type">none</property>
        <child>
          <object class="GtkAlignment" id="alignment3">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="top_padding">6</property>
            <property name="left_padding">12</property>
            <child>
              <object class="GtkGrid" id="grid3">
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <property name="row_spacing">6</property>
                <child>
                  <object class="GtkCheckButton" id="ignorelanguagechange">
                    <property name="label" translatable="yes">Ignore s_ystem input language</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">False</property>
                    <property name="use_underline">True</property>
                    <property name="xalign">0</property>
                    <property name="draw_indicator">True</property>
                  </object>
                  <packing>
                    <property name="left_attach">0</property>
                    <property name="top_attach">0</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
              </object>
            </child>
          </object>
        </child>
        <child type="label">
          <object class="GtkLabel" id="label3">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="label" translatable="yes">Enhanced language support</property>
            <attributes>
              <attribute name="weight" value="semibold"/>
            </attributes>
          </object>
        </child>
      </object>
      <packing>
        <property name="expand">False</property>
        <property name="fill">True</property>
        <property name="position">2</property>
      </packing>
    </child>
  </object>
</interface>