Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 425704 - app-text/enchant not detecting de_DE_frami dictionary correctly (instead uses de_CH_frami as fallback)
Summary: app-text/enchant not detecting de_DE_frami dictionary correctly (instead uses...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 1 vote (vote)
Assignee: GNOME Office (OBSOLETE)
URL:
Whiteboard:
Keywords: NeedPatch
Depends on:
Blocks:
 
Reported: 2012-07-10 16:25 UTC by Till Schäfer
Modified: 2013-10-02 09:34 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
full strace output of enchant (enchant_debug,87.95 KB, text/plain)
2012-07-17 11:39 UTC, Till Schäfer
Details
Patch to modify uppercase normalization in enchant (enchant-1.6.0-fix-case-normalization.patch,924 bytes, patch)
2013-03-12 09:20 UTC, Erich Seifert
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Till Schäfer 2012-07-10 16:25:53 UTC
When using enchant, the spell checker always replaces ß by ss. For Example the German word Straße is written Strasse. This is obviously wrong. Hunspell and aspell (which are also installed on the system) work correctly.

echo Straße | hunspell -d de_DE_frami
Hunspell 1.3.2
*
     
# echo Straße | enchant -d de_DE_frami -a
@(#) International Ispell Version 3.1.20 (but really Enchant 1.6.0)
& Straße 2 0: Strasse, Strafe


The misbehavior is system wide and not limited to the user. Therefore is should be not influenced by my user profile. Interestingly my Laptop works correctly, although the use flags and everything else from myspell aspell and enchant seems to be same. 

Reproducible: Always

Steps to Reproduce:
1. echo Straße | enchant -d de_DE_frami -a

Actual Results:  
@(#) International Ispell Version 3.1.20 (but really Enchant 1.6.0)
& Straße 2 0: Strasse, Strafe

Expected Results:  
@(#) International Ispell Version 3.1.20 (but really Enchant 1.6.0)
*

# emerge --info
Portage 2.2.0_alpha116 (default/linux/amd64/10.0/desktop/kde, gcc-4.5.3, glibc-2.14.1-r3, 3.3.8-gentoo x86_64)
=================================================================
System uname: Linux-3.3.8-gentoo-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q9450_@_2.66GHz-with-gentoo-2.1
Timestamp of tree: Mon, 09 Jul 2012 18:35:01 +0000
ccache version 3.1.7 [enabled]
app-shells/bash:          4.2_p20
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.3-r2, 3.2.3
dev-util/ccache:          3.1.7
dev-util/cmake:           2.8.7-r5
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.9.8.4
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.11.1
sys-devel/binutils:       2.21.1-r1
sys-devel/gcc:            4.5.3-r2
sys-devel/gcc-config:     1.6
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 3.4 (virtual/os-headers)
sys-libs/glibc:           2.14.1-r3
Repositories: gentoo arcon local_overlay
Installed sets: @kdeartwork-4.8, @kdebase-4.8, @system
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe -ggdb"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=native -O2 -pipe -ggdb"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps=y --autounmask-write --jobs --load-average=10.0"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fixlafiles news parallel-fetch parallel-install parse-eapi-ebuild-head preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="de"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/arcon /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa amd64 bash-completion berkdb bluetooth branding bzip2 cairo cdda cddb cdio cdparanoia cdr cli compiz consolekit cracklib crypt cups cxx dbus declarative device-mapper dri dts dvd dvdr emboss encode evdev exif fam ffmpeg firefox flac fortran gdbm gif glib glibc gpm gstreamer gtk iconv icu id3tag ieee1394 imagemagick inotify ipv4 ipv6 irc jack java java6 jpeg jpeg2k kde kde4 kipi latex lcms ldap libnotify libsamplerate lvm lzma mad mmx mmxext mng modules mozilla mp3 mp4 mpeg mplayer mudflap multilib musicbrainz ncurses nls nptl ntp ogg opengl openmp oscar otr pam pango pcre pdf phonon plasma png policykit ppds pppd pulseaudio qemu qt3support qt4 quicktime rar readline rss rtc sdl semantic-desktop session spell sse sse2 sse3 sse4 sse4_1 ssl ssse3 startup-notification strigi svg syslog taglib tcpd theora threads thumbnail tiff truetype udev udisks unicode upower usb v41 v412 v4l vaapi vcd vdpau vim-syntax visualization vorbis wavpack wlm wma wmf wxwidgets x264 xcb xcomposite xine xinerama xml xorg xscreensaver xv xvid xvmc zlib" ALSA_CARDS="hdsp hdspm" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="vesa nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON




eix -I spell
[I] app-dicts/aspell-de
     Available versions:  0.50.2 0.60_pre20030222
     Installed versions:  0.60_pre20030222(21:38:40 16.01.2012)
     Homepage:            http://aspell.net
     Description:         German and Swiss-German language dictionary for aspell

[I] app-dicts/aspell-en
     Available versions:  0.51.0 0.51.1 6.0.0
     Installed versions:  6.0.0(01:37:15 19.04.2012)
     Homepage:            http://aspell.net
     Description:         English (US, British, Canadian) language dictionary for aspell

[I] app-dicts/myspell-de
     Available versions:  2012.06.10
     Installed versions:  2012.06.10(15:45:19 10.07.2012)
     Homepage:            http://extensions.libreoffice.org/extension-center/german-de-at-frami-dictionaries http://extensions.libreoffice.org/extension-center/german-de-de-frami-dictionaries http://extensions.libreoffice.org/extension-center/german-de-ch-frami-dictionaries
     Description:         German dictionaries for myspell/hunspell

[I] app-dicts/myspell-en
     Available versions:  20081002
     Installed versions:  20081002(01:57:12 21.09.2011)
     Homepage:            http://lingucomponent.openoffice.org/
     Description:         English dictionaries for myspell/hunspell

[I] app-text/aspell
     Available versions:  0.50.5-r4 0.60.6.1 {gpm linguas_af linguas_be linguas_bg linguas_br linguas_ca linguas_cs linguas_cy linguas_da linguas_de linguas_el linguas_en linguas_eo linguas_es linguas_et linguas_fi linguas_fo linguas_fr linguas_ga linguas_gl linguas_he linguas_hr linguas_is linguas_it linguas_la linguas_lt linguas_nl linguas_no linguas_pl linguas_pt linguas_pt_BR linguas_ro linguas_ru linguas_sk linguas_sl linguas_sr linguas_sv linguas_uk linguas_vi nls}
     Installed versions:  0.60.6.1(21:38:32 16.01.2012)(linguas_de nls -linguas_af -linguas_be -linguas_bg -linguas_br -linguas_ca -linguas_cs -linguas_cy -linguas_da -linguas_el -linguas_en -linguas_eo -linguas_es -linguas_et -linguas_fi -linguas_fo -linguas_fr -linguas_ga -linguas_gl -linguas_he -linguas_hr -linguas_is -linguas_it -linguas_la -linguas_lt -linguas_nl -linguas_no -linguas_pl -linguas_pt -linguas_pt_BR -linguas_ro -linguas_ru -linguas_sk -linguas_sl -linguas_sr -linguas_sv -linguas_uk -linguas_vi)
     Homepage:            http://aspell.net/
     Description:         A spell checker replacement for ispell

[I] app-text/gtkspell
     Available versions:  
        (2)     2.0.16
        (3)     ~3.0.0_pre20110814-r1
        {doc}
     Installed versions:  2.0.16(2)(18:12:06 10.07.2012)(-doc)
     Homepage:            http://gtkspell.sourceforge.net/
     Description:         Spell checking widget for GTK

[I] app-text/hunspell
     Available versions:  1.3.2-r3 {linguas_af linguas_bg linguas_ca linguas_cs linguas_cy linguas_da linguas_de linguas_el linguas_en linguas_eo linguas_es linguas_et linguas_fo linguas_fr linguas_ga linguas_gl linguas_he linguas_hr linguas_hu linguas_ia linguas_id linguas_it linguas_ku linguas_lt linguas_lv linguas_mk linguas_ms linguas_nb linguas_nl linguas_nn linguas_pl linguas_pt linguas_ro linguas_ru linguas_sk linguas_sl linguas_sq linguas_sv linguas_sw linguas_tn linguas_uk linguas_zu ncurses nls readline static-libs}
     Installed versions:  1.3.2-r3(04:07:44 14.06.2012)(linguas_de ncurses nls readline -linguas_af -linguas_bg -linguas_ca -linguas_cs -linguas_cy -linguas_da -linguas_el -linguas_en -linguas_eo -linguas_es -linguas_et -linguas_fo -linguas_fr -linguas_ga -linguas_gl -linguas_he -linguas_hr -linguas_hu -linguas_ia -linguas_id -linguas_it -linguas_ku -linguas_lt -linguas_lv -linguas_mk -linguas_ms -linguas_nb -linguas_nl -linguas_nn -linguas_pl -linguas_pt -linguas_ro -linguas_ru -linguas_sk -linguas_sl -linguas_sq -linguas_sv -linguas_sw -linguas_tn -linguas_uk -linguas_zu -static-libs)
     Homepage:            http://hunspell.sourceforge.net/
     Description:         Hunspell spell checker - an improved replacement for myspell in OOo.
Comment 1 Till Schäfer 2012-07-17 11:36:36 UTC
i found out that the de_CH_frami dictionary is used with strace although de_DE_frami was given as argument. it seems that enchant is searching for de_DE_FRAMI (upper case) instead of de_DE_frami. Because it could not find the file, it is opening de_CH_frami (lowercase). 


open("/root/.enchant/enchant.ordering", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/root/.config/enchant/enchant.ordering", O_RDONLY) = -1 ENOENT (No such file or directory)
access("/root/.config/enchant/myspell/de_DE_FRAMI.dic", F_OK) = -1 ENOENT (No such file or directory)
access("/root/.enchant/myspell/de_DE_FRAMI.dic", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/local/share/myspell/dicts/de_DE_FRAMI.dic", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/share/myspell/dicts/de_DE_FRAMI.dic", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/share/enchant/myspell/de_DE_FRAMI.dic", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/share/myspell/de_DE_FRAMI.dic", F_OK) = -1 ENOENT (No such file or directory)
open("/root/.config/enchant/myspell", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/root/.enchant/myspell", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/local/share/myspell/dicts", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/myspell/dicts", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/enchant/myspell", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/myspell/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4
getdents(4, /* 35 entries */, 32768)    = 1272
getdents(4, /* 0 entries */, 32768)     = 0
close(4)                                = 0
access("/root/.config/enchant/myspell/de.dic", F_OK) = -1 ENOENT (No such file or directory)
access("/root/.enchant/myspell/de.dic", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/local/share/myspell/dicts/de.dic", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/share/myspell/dicts/de.dic", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/share/enchant/myspell/de.dic", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/share/myspell/de.dic", F_OK) = -1 ENOENT (No such file or directory)
open("/root/.config/enchant/myspell", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/root/.enchant/myspell", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/local/share/myspell/dicts", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/myspell/dicts", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/enchant/myspell", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/myspell/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4
getdents(4, /* 35 entries */, 32768)    = 1272
access("/usr/share/myspell/de_CH_frami.aff", F_OK) = 0
close(4)                                = 0
access("/usr/share/myspell/de_CH_frami.aff", F_OK) = 0
brk(0x1420000)                          = 0x1420000
open("/usr/share/myspell/de_CH_frami.aff", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=18725, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4aae533000
read(4, "# This is the affix file of the "..., 4096) = 4096
close(4)                                = 0
munmap(0x7f4aae533000, 4096)            = 0
brk(0x1410000)                          = 0x1410000
open("/usr/share/myspell/de_CH_frami.dic", O_RDONLY) = 4
Comment 2 Till Schäfer 2012-07-17 11:39:36 UTC
Created attachment 318438 [details]
full strace output of enchant
Comment 3 Till Schäfer 2012-07-17 12:24:34 UTC
as suggested from strace symlinking to uppercase dictionaries solves the issue:

/usr/share/myspell/de_DE_FRAMI.aff -> /usr/share/hunspell/de_DE_frami.aff
/usr/share/myspell/de_DE_FRAMI.dic -> /usr/share/hunspell/de_DE_frami.dic
Comment 4 Tomáš Chvátal (RETIRED) gentoo-dev 2012-07-25 13:27:12 UTC
I would say there is bug in the enchant.

Because it should roll the filenames in proper order again with the lowercase frami.

I don't even get why it tries to open de_DE with uppercase frami while it goes for the de_CH with lowercase one...
Comment 5 Till Schäfer 2012-07-25 16:41:39 UTC
> I don't even get why it tries to open de_DE with uppercase frami while it
> goes for the de_CH with lowercase one...

Maybe its some kind of heuristic approach to select the first file starting with "de" it can find. This guess came into my mind because my other computer selects de_AT. Both directories on the different computers contain the same files. therefore its some kind of random behavior.
Comment 6 Tomáš Chvátal (RETIRED) gentoo-dev 2012-07-25 18:08:35 UTC
Well I would really blame enchant.

Because even debian use the lowercase version:

http://packages.debian.org/sid/all/hunspell-de-de-frami/filelist
Comment 7 Till Schäfer 2012-07-25 18:37:49 UTC
i reported the problem upstream: http://bugzilla.abisource.com/show_bug.cgi?id=13387
Comment 8 Tomáš Chvátal (RETIRED) gentoo-dev 2012-08-17 11:25:39 UTC
This bug is fixed maybe by 2012.06.17-r1 as i had to remove the _frami anyway?

Could you verify it?
Comment 9 Till Schäfer 2012-08-17 15:38:13 UTC
it works for me with =app-dicts/myspell-de-2012.06.17-r1
Comment 10 Tomáš Chvátal (RETIRED) gentoo-dev 2012-08-17 15:42:36 UTC
Great, closing as fixed for us, maybe upstream fix it properly for all names later.
Comment 11 Till Schäfer 2012-08-17 16:58:41 UTC
reopening because the change causes trouble with kde. 

on the command line everything works fine now. e.g.:

echo Strasse | enchant -d de_DE -a
@(#) International Ispell Version 3.1.20 (but really Enchant 1.6.0)
& Strasse 9 0: Straße, Strass, Strapse, -trasse, Stresse, Astrasse, Ostrasse, Trasse, Terrasse

but in KDE German spell checking does not work at all. every string is correct. so it seems to be disabled.
Comment 12 Erich Seifert 2013-03-12 09:20:34 UTC
Created attachment 341784 [details, diff]
Patch to modify uppercase normalization in enchant

This bug was so annoying to me that I decided to write the attached patch.

With the patch enchant converts only the substring between the first and second underscore characters to uppercase. The rest of the string will be converted to lowercase. So, instead of looking for 'de_DE_FRAMI' it will be looking for 'de_DE_frami'.

I'm not a C programmer, but I think the code is correct. However, the patch may cause troubles with other dictionaries relying on the existing uppercase conversion.
Comment 13 Till Schäfer 2013-03-12 10:47:27 UTC
Is there any standard for the upper/lower case writing of these files or is it just "how it is"? Why is the case important anyway? Could we simply ignore it?
Comment 14 Tomáš Chvátal (RETIRED) gentoo-dev 2013-03-12 11:33:13 UTC
Honestly from what I see the case should be ignored.
Comment 15 Erich Seifert 2013-03-12 11:57:05 UTC
Because applications seem to use very different naming schemes (e.g. en-us) enchant tries to normalize the dictionary name before looking for it on the file system.

The '_frami' extension which is treated as a part of the (uppercase) territory by enchant. When it can't find a matching dictionary it simply chooses the first from the list of files with de_DE prefix (i.e. de_CH_frami in this case).

I'm not an expert, but a case-insensitive lookup would certainly make more sense. However, it would require a lot more changes in enchant's code than I am able to do without breaking it.

I also submitted the patch upstream. I hope it will at least bring some discussion about special cases like this one.
Comment 16 Michael Hofmann 2013-06-04 19:53:21 UTC
There is a new version of myspell-de: app-dicts/myspell-de-r1

I'm pretty sure that it will solve the problem. Can you install this package and retry, please? 

Notes: 
1) the package is still keyworded - you have to add this package to
/etc/portage/package.keywords.

2) The filenames of the German dictionaries were changed (which is the solution of the problem). You may have to re-select the language if you start your program for the first time
Comment 17 Till Schäfer 2013-06-10 17:17:05 UTC
it works on the terminal right now, but i get problems in kde. Every word is accepted in kde as correct spelling. 

However, when i start with a clean .kde4 folder, the problem is gone. Therefore this might be some settings problem from me. Maybe someone can evaluate if this is a general migration problem in kde or a specific problem of my settings? If it is general, we should add some notification during the update, what the user needs to change to make kde working again.
Comment 18 Till Schäfer 2013-06-10 17:21:58 UTC
i just noted that this was a double post. 
"right now" is the 2012.06.17-r1 version :-)
Comment 19 Till Schäfer 2013-06-13 17:50:59 UTC
OK the solution to the kde problem was pointet to me in an irc session: 

One need to grep for _frami in all kde config files, since some apps like kile and kate do not update the old dictionary from de_DE_frami even if the language is changed to another language and than back to german. 

~/.kde4/share/config $ grep -ir "_frami" *
katerc:defaultLanguage=de_DE_frami
kilerc:defaultLanguage=de_DE_frami


Deleting that line form the config files helps. 

So maybe we should give a hint to the users when upgrading to the latest version of myspell_de.
Comment 20 Pacho Ramos gentoo-dev 2013-08-29 12:17:46 UTC
Where is exactly the problem? enchant or myspell-de? Are *both* upstreams aware? Also, not sure how other distributions are handling this :/
Comment 21 Till Schäfer 2013-10-02 09:34:35 UTC
closing, as the reopening cause is a kde problem and not a enchant or myspell one. 
I will open an extra bug for this upstream.