I've managed to get custom dictionaries working with aspell by creating a .multi file which adds my custom .rws file on top of my base language. In my case en-GB.
My "foo" variant is in a separate part of the file system at /my/custom/en_GB-foo.multi, and looks like this:
add foo.rws
add /usr/lib64/aspell-0.60/en_GB.multi
It works, but the absolute path is inconvenient. I'd prefer it looked like this:
add foo.rws
add en_GB.multi
My current best workaround is a symlink: e.g. /my/custom/base => /usr/lib64/aspell-0.60, so I can do this:
add foo.rws
add base/en_GB.multi
It works as expected, when I invoke aspell like this:
aspell --lang=en_GB --variety=foo --dict-dir=/my/custom check file.txt
For whatever reason, when aspell follows the path to the base language, all relative paths from then on are resolved according to their installed location, despite my custom dict-dir setting. This is all good!
BUT - Is there a "proper" way to have aspell search two paths for dictionary files? I've tried local-data-dir, but I clearly misunderstand what this is for. I've tried specifying dict-dir multiple times, and with multiple values. I've tried placing my custom files in home-dir. None of this has worked.