diff options
author | Julien Nabet <serval2412@yahoo.fr> | 2014-06-18 21:08:03 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-07-05 14:14:08 +0000 |
commit | 1f407caeb3f6e2605973458a545547ed82e7da1c (patch) | |
tree | fdb3562bfd7649aeac1ff4c01eb879b80ba26c29 /editeng | |
parent | 63e4cd95be982da3b85883cde067b5e06c6e5efb (diff) |
Resolves fdo#79276 Add fallback system for autocorrection of French variants
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
Reviewed-on: https://gerrit.libreoffice.org/9825
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Conflicts:
editeng/source/misc/svxacorr.cxx
include/editeng/svxacorr.hxx
sw/source/core/edit/acorrect.cxx
Change-Id: Ia3e11fff0f266839dc148077b50c1b2f798d1c50
Reviewed-on: https://gerrit.libreoffice.org/10065
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/source/misc/svxacorr.cxx | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index f0501f3917c9..12413eed1e9d 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -1560,7 +1560,7 @@ sal_Bool SvxAutoCorrect::CreateLanguageFile( const LanguageTag& rLanguageTag, sa { OSL_ENSURE(pLangTable->find(rLanguageTag) == pLangTable->end(), "Language already exists "); - OUString sUserDirFile( GetAutoCorrFileName( rLanguageTag, sal_True, sal_False )); + OUString sUserDirFile( GetAutoCorrFileName( rLanguageTag, true, false, false )); OUString sShareDirFile( sUserDirFile ); SvxAutoCorrectLanguageListsPtr pLists = 0; @@ -1583,10 +1583,15 @@ sal_Bool SvxAutoCorrect::CreateLanguageFile( const LanguageTag& rLanguageTag, sa aLastFileTable.erase(nFndPos); } } - else if( ( FStatHelper::IsDocument( sUserDirFile ) || - FStatHelper::IsDocument( sShareDirFile = - GetAutoCorrFileName( rLanguageTag, sal_False, sal_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 @@ -1902,9 +1907,16 @@ sal_Bool SvxAutoCorrect::FindInCplSttExceptList(LanguageType eLang, } OUString SvxAutoCorrect::GetAutoCorrFileName( const LanguageTag& rLanguageTag, - sal_Bool bNewFile, sal_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 ) |