I’ve tried all of this but no dice. Still not seeing any spell checking going on. No error messages, but no spell checking either.
Ubuntu 13.10 64bit
Is there any way of checking what scrivener is actually using in terms of dictionaries etc. It gives me the option to select dictionaries so that bit looks to have worked. I have to admit to being at a loss right now
Basically, there are two possible problems with aspell:
a) the wrong dictionary location is being used
(i.e. /var/lib/aspell instead of /usr/share/scrivener/lib/aspell)
b) the dictionaries are 64-bit instead of 32-bit
You can verify a) by simply moving the dictionary files and seeing if they disappear from the preferences (e.g. mv /var/lib/aspell /var/lib/aspell.old; mkdir /var/lib/aspell). If you find the dictionaries are being read from /var/lib, use ASPELL_CONF to override this.
If the correct location is being used, rebuild the dictionaries in /usr/share/scrivener as follows:
Done it. I just uninstalled everything and started again this time taking extra care over each step. I also added:
echo 'LD_LIBRARY_PATH="/usr/share/scrivener/lib"' >> /tmp/gen_32_aspell_dicts.sh
echo 'AC_CONF="/usr/share/scrivener"' >> /tmp/gen_32_aspell_dicts.sh
to the dictionary fix script generator.
I also added the AC_CONF directive to the scrivener,sh launch script as well. Not sure if they made a difference but it worked for me so I’m not complaining! I think the AC_CONF thing is superfluous but I definitely needed the LD_LIBRARY_PATH export as it was picking up the 64 bit libs
Addendum: It appears that when Scrivener is launched from the unity launchers bar, it ignores the aspell prefix calls and reverts back to the 64bit calls. I’ve been unable to coax it into working from there, so have just reverted to calling it from command line where this problem doesn’t occur. If anyone knows why this happens I’d be delighted to know!
You can try commenting out the TryExec line in order to force it to use the shell script. Also, ensure that the shell script in the Exec line matches the one you modified with the AC_CONF directive (it sounds like it is, but best double-check).
Yeah - first thing I tried was to remove the TryExec bit, but no joy. It’s not a major problem as I’ve just installed it as an icon on the desktop rather than the unity launcher bar and it runs fine from there.
It could be an environment problem. Try creating a shell script in your home dir which sources your .bashrc, and update the Scrivener .desktop file to use that:
Also, you might want to put a line in the shell script to touch a file in /tmp (e.g. ‘touch /tmp/scrivener_called.txt’) in order to verify that Unity is in fact invoking the shell script (and not just failing silently for whatever reason).
Oddly enough, I somehow managed to get spellcheck (en) to work on Ubuntu 13.10 64 bits by accident. Following the steps only got me as far as having it find the right dictionaries, but the actual spell check did not work. Now, if I run the actual executable (without the script), it just works.
Attempting to reproduce this on another machine (by copying over the tarball directory to an user, same path, same version, same permissions), but so far, no luck. Finds the dict and that’s it. Odd to say the least.
I’m not running Ubuntu, but when I list the Aspell modules available in my Linux distro I see one for each language. In my case I have aspell-en. There’s one for Russian, aspell-ru. I’m guessing you need that, plus, of course, Aspell itself, if you don’t already have it installed Also need libaspell-dev.