Subject: bug#19229: ispell on Windows

From: Eli Zaretskii <[email-masked]>
Date: Thu, 21 May 2015 19:23:03 +0300

> Date: Thu, 21 May 2015 09:16:00 +0100
> From: Alan Third <[email-masked]>
> Cc: [email-masked]
> 
> >> > Instead, I suggest to copy en_GB.* dictionary files that Hunspell uses
> >> > to corresponding ENG.* files.
> >>
> >> Doesn't work in OS X, but I'll give it a go in Windows tomorrow.
> 
> This works in windows! Once this is done I can then use
> ispell-change-dictionary to change the dictionary to anything I want.
> Presumably, then, the problem I'm seeing is that ispell+hunspell falls
> over if the dictionary initially set by emacs doesn't exist.

Could be, but see below: using LANG is a fallback.

> Is there a way to force ispell+hunspell to use a different dictionary
> from the start other than changing the LANG variable?

There are several ways of doing that.

First, you can customize the variable ispell-dictionary to name the
dictionary (without the .aff or .dic extensions, just the stem of the
basename, as in "en_GB").  You can set this in your ~/.emacs.  This
will cause ispell.el to invoke Hunspell with the appropriate -d
command-line option.

Alternatively, you can set the environment variable DICTIONARY to name
the dictionary, as in "set DICTIONARY=en_GB".  This environment
variable is documented in the Hunspell man page.

If neither -d is used nor DICTIONARY variable is found in the
environment, Hunspell checks LC_ALL, LC_MESSAGES, and LANG variables,
in that order.  LANG is already set by Emacs when it starts; you could
theoretically use one of the other two, but I don't recommend that,
again because they have specific meaning for locale-sensitive APIs,
and so other programs might react to them in ways you won't like.