From 82f291d2f7630938ce6ca740f904cab07d1ff90d Mon Sep 17 00:00:00 2001 From: Julien Nabet Date: Wed, 18 Jun 2014 21:08:03 +0200 Subject: Resolves fdo#79276 Add fallback system for autocorrection of French variants MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1) Replace the creation of acor_fr-FR.dat by acor_fr.dat since there's no specific for variants of fr 2) Add a fallback system to use it Change-Id: Ia3e11fff0f266839dc148077b50c1b2f798d1c50 Reviewed-on: https://gerrit.libreoffice.org/9825 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- editeng/source/misc/svxacorr.cxx | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'editeng') diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index 82914927120f..7e2cc7efc933 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -1544,7 +1544,7 @@ bool SvxAutoCorrect::CreateLanguageFile( const LanguageTag& rLanguageTag, bool b { OSL_ENSURE(pLangTable->find(rLanguageTag) == pLangTable->end(), "Language already exists "); - OUString sUserDirFile( GetAutoCorrFileName( rLanguageTag, true, false )); + OUString sUserDirFile( GetAutoCorrFileName( rLanguageTag, true, false, false )); OUString sShareDirFile( sUserDirFile ); SvxAutoCorrectLanguageListsPtr pLists = 0; @@ -1567,10 +1567,15 @@ bool SvxAutoCorrect::CreateLanguageFile( const LanguageTag& rLanguageTag, bool b aLastFileTable.erase(nFndPos); } } - else if( ( FStatHelper::IsDocument( sUserDirFile ) || - FStatHelper::IsDocument( sShareDirFile = - GetAutoCorrFileName( rLanguageTag, false, false ) ) ) || - ( sShareDirFile = sUserDirFile, bNewFile )) + else if( + ( FStatHelper::IsDocument( sUserDirFile ) || + FStatHelper::IsDocument( sShareDirFile = + GetAutoCorrFileName( rLanguageTag, false, false, false ) ) || + FStatHelper::IsDocument( sShareDirFile = + GetAutoCorrFileName( rLanguageTag, false, false, true) ) + ) || + ( sShareDirFile = sUserDirFile, bNewFile ) + ) { pLists = new SvxAutoCorrectLanguageLists( *this, sShareDirFile, sUserDirFile ); LanguageTag aTmp(rLanguageTag); // this insert() needs a non-const reference @@ -1886,9 +1891,16 @@ bool SvxAutoCorrect::FindInCplSttExceptList(LanguageType eLang, } OUString SvxAutoCorrect::GetAutoCorrFileName( const LanguageTag& rLanguageTag, - bool bNewFile, bool bTst ) const + bool bNewFile, bool bTst, bool bUnlocalized ) const { OUString sRet, sExt( rLanguageTag.getBcp47() ); + if (bUnlocalized) + { + // we don't want variant, so we'll take "fr" instead of "fr-CA" for example + ::std::vector< OUString > vecFallBackStrings = rLanguageTag.getFallbackStrings(false); + if (!vecFallBackStrings.empty()) + sExt = vecFallBackStrings[0]; + } sExt = "_" + sExt + ".dat"; if( bNewFile ) -- cgit