diff -Nur a/configure.ac b/configure.ac
--- a/configure.ac	2024-02-09 01:11:48.000000000 +0800
+++ b/configure.ac	2024-04-02 16:10:28.816672230 +0800
@@ -155,7 +155,12 @@
       [enable the $1 provider @<:@default=provider_check@:>@]),
       [with_[]$1=$withval],
       [with_[]$1=provider_check])
-   $1[]_dir=${datadir}/$1])
+   $1[]_dir=${datadir}/$1
+   AC_ARG_WITH([$1[]-dir],
+      AS_HELP_STRING([--with-[]$1-dir=PATH],
+         [path to installed $1 dicts]))
+   AS_IF([test "$with_[]$1_dir" != ""],
+      [$1[]_dir=$with_[]$1_dir])])
 
 AC_DEFUN([ENCHANT_CHECK_PKG_CONFIG_PROVIDER],
   [ENCHANT_CHECK_PROVIDER_SETUP([$1], [$4])
diff -Nur a/providers/enchant_hunspell.cpp b/providers/enchant_hunspell.cpp
--- a/providers/enchant_hunspell.cpp	2024-02-09 01:11:48.000000000 +0800
+++ b/providers/enchant_hunspell.cpp	2024-04-02 16:13:02.628672230 +0800
@@ -222,6 +222,12 @@
 			free(enchant_prefix);
 			g_free(tmp);
 		}
+
+#ifdef ENCHANT_HUNSPELL_DICT_DIR
+	config_dir = enchant_relocate (ENCHANT_HUNSPELL_DICT_DIR);
+	dirs.push_back (config_dir);
+	free(config_dir);
+#endif
 }
 
 static void
