summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2014-06-18 21:08:03 +0200
committerAndras Timar <andras.timar@collabora.com>2014-07-06 10:50:58 +0200
commit50172a3b64df11cb14bc56de23889c8ee60cdfa5 (patch)
tree5f1f0764ab585fb8661c98cd9bfe2d310bbe7403
parent5ee59d4a5c3826ebfe4b798eb624de653904e115 (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>
-rw-r--r--editeng/source/misc/svxacorr.cxx24
-rw-r--r--extras/CustomTarget_autocorr.mk2
-rw-r--r--extras/Package_autocorr.mk2
-rw-r--r--include/editeng/svxacorr.hxx5
-rw-r--r--sw/source/core/edit/acorrect.cxx2
5 files changed, 24 insertions, 11 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 )
diff --git a/extras/CustomTarget_autocorr.mk b/extras/CustomTarget_autocorr.mk
index 66d32f6a8a65..ddafa020f7f4 100644
--- a/extras/CustomTarget_autocorr.mk
+++ b/extras/CustomTarget_autocorr.mk
@@ -23,7 +23,7 @@ extras_AUTOCORR_LANGS := \
es:es-ES \
fa:fa-IR \
fi:fi-FI \
- fr:fr-FR \
+ fr:fr \
ga-IE:ga-IE \
hr:hr-HR \
hu:hu-HU \
diff --git a/extras/Package_autocorr.mk b/extras/Package_autocorr.mk
index e42e3d1215d3..8c71a60d1aa3 100644
--- a/extras/Package_autocorr.mk
+++ b/extras/Package_autocorr.mk
@@ -23,7 +23,7 @@ $(eval $(call gb_Package_add_files,extras_autocorr,$(LIBO_SHARE_FOLDER)/autocorr
acor_es-ES.dat \
acor_fa-IR.dat \
acor_fi-FI.dat \
- acor_fr-FR.dat \
+ acor_fr.dat \
acor_ga-IE.dat \
acor_hr-HR.dat \
acor_hu-HU.dat \
diff --git a/include/editeng/svxacorr.hxx b/include/editeng/svxacorr.hxx
index 82b76ce86766..0f99d2d8e4d0 100644
--- a/include/editeng/svxacorr.hxx
+++ b/include/editeng/svxacorr.hxx
@@ -329,8 +329,9 @@ public:
// Query/Set the name of the AutoCorrect file
// the default is "autocorr.dat"
OUString GetAutoCorrFileName( const LanguageTag& rLanguageTag /* = LANGUAGE_SYSTEM */ ,
- sal_Bool bNewFile = sal_False,
- sal_Bool bTstUserExist = sal_False ) const;
+ bool bNewFile = false,
+ bool bTstUserExist = false,
+ bool bUnlocalized = false ) const;
// Query/Set the current settings of AutoCorrect
long GetFlags() const { return nFlags; }
diff --git a/sw/source/core/edit/acorrect.cxx b/sw/source/core/edit/acorrect.cxx
index d8f19809fbfe..96a00b14bd33 100644
--- a/sw/source/core/edit/acorrect.cxx
+++ b/sw/source/core/edit/acorrect.cxx
@@ -340,7 +340,7 @@ bool SwAutoCorrDoc::ChgAutoCorrWord( sal_Int32& rSttPos, sal_Int32 nEndPos,
}
else
{
- SwTextBlocks aTBlks( rACorrect.GetAutoCorrFileName( aLanguageTag, sal_False, sal_True ));
+ SwTextBlocks aTBlks( rACorrect.GetAutoCorrFileName( aLanguageTag, false, true, false ));
sal_uInt16 nPos = aTBlks.GetIndex( pFnd->GetShort() );
if( USHRT_MAX != nPos && aTBlks.BeginGetDoc( nPos ) )
{