# OpenOffice-Wörterbücher mit Firefox und Thunderbird teilen

## Guenther Brunthaler

Dieser Artikel beschreibt, wie man bereits für OpenOffice installierte Wörterbücher gemeinsam mit  Firefox und Thunderbird verwendet.

Also ohne eine sinnlose 2. Kopie dieser Wörterbücher installieren zu müssen was völlig sinnlos den doppelten Speicherplatz kosten würde!

Die hier gezeigte Methode installiert diese Wörterbücher ferner so dass sie für alle Benutzer des Rechners danach benutzbar sind.

Die hier beschriebene Methode gilt für Gentoo Linux und die aktuellen stabilen TB und FF Versionen zum Zeitpunkt als ich diese kleine Anleitung schrieb (April 2008). Und zwar die selbstkompilierten Versionen, also nicht die bin-Pakete. (Vielleicht funktioniert die Anleitung auch für die bin-Versionen von TB und FF - ich weiss es nicht. Auf meinen Rechner kommt mir jedenfalls kein Binärschrott den ich nicht selbst übersetzt habe; da könnte ich ja gleich UBUNTU nehmen.)

Ich merke dies deshalb an, da ich zahllose andere Guides zu diesem Thema fand, die alle etwas von einem components/myspell-Verzeichnis fantasierten - und allesamt NICHT funktionierten! Möglicherweise weicht die Gentoo-Installation hier daher von anderen Distros ab.

Wie auch immer - meine Methode funktioniert für die oben genannte Konfiguration.

Da die Installation Admin-Rechte erfordert, muss man die folgenden Schritte als "su - root" tun:

Als erstes müsste ihr natürlich die Wörterbücher von OOo installiert haben - falls noch nicht geschehen, so könnt ihr etwa die deutschen und englischen Wörterbücher für OOo installieren:

```
# emerge -vau app-dicts/myspell-{de,en}

```

Und hier nun das Recycling für OOo:

Das nachfolgende Script (etwa: "/usr/local/sbin/myspell-sync") speichern.

```
#! /bin/sh

# Symlinks installed myspell dictionaries

# for use with Mozilla Firefox and Thunderbird.

# Can also be used to update existing symlinks.

# Will also detect and remove outdated symlinks.

#

# Written in 2008 by Guenther Brunthaler

# Where to find the installed myspell dictionaries.

MYSPELLDICTS=/usr/share/myspell

die() {

   echo "ERROR: $*" >& 2

   exit 1

}

run() {

   "$@" && return

   die "Could not execute >>>$*<<<: return code ${?}!"

}

check_symlink() {

   local T RM

   T=`readlink --canonicalize "$1"`

   if test -f "$T"; then

      # Remove symlinks to be recreated.

      test x"${T#$MYSPELLDICTS/}" != x"$T" && RM=1

   else

      # Remove outdated symlinks.

      RM=1

   fi

   test -z "$RM" && return

   run rm "$1"

}

createlinks() {

   local D N N2 P X COLL BAD CI

   D=$2

   N=${1##*/}

   P=${1%/$N}

   N=${N%.*}

   # Collect extensions to be symlinked.

   set --

   for X in dic aff; do

      test -f "$P/$N.$X" && set -- "$@" "$X"

   done

   # Mozilla expects ll-CC* names instead of ll_CC* names.

   N2=`echo "$N" | sed -e 's/_/-/'`

   # Collision avoidance.

   CI=1

   while true; do

      BAD=

      for X in "$@"; do

         if test -e "$D/$N2$COLL.$X"; then

            BAD=1

            break

         fi

      done

      test -z "$BAD" && break

      COLL=$CI

      CI=`expr $CI + 1`

      test $COLL = 1 && COLL=

      COLL=_myspell$COLL

   done

   for X in "$@"; do

      run ln -s "$P/$N.$X" "$D/$N2$COLL.$X"

   done

}

run test -d "$MYSPELLDICTS"

# Add more paths to obtain symlinked copies of the

# myspell dictionaries in the lines below if you want.

for D in \

   /usr/lib/mozilla-firefox/dictionaries \

   /usr/lib/mozilla-thunderbird/dictionaries \

; do

   if test -d "$D"; then

      echo "Symlinking dictionaries into $D..."

      for L in "$D"/*; do

         test -L "$L" && check_symlink "$L"

      done

      # Match only dictionaries, not thesauri or hyph* files.

      for DICT in "$MYSPELLDICTS"/[a-z][a-z]_[A-Z][A-Z]*.dic; do

         test -f "$DICT" && createlinks "$DICT" "$D"

      done

   fi

done
```

Nach dem Speichern als ausführbar setzen:

```
# chmod +x /usr/local/sbin/myspell-sync
```

Und schließlich das Script ausführen:

```
# myspell-sync
```

Danach kann man im TB Settings-Dialog jedes der OOo-Wörterbücher für die Rechtschreibung auswählen.

Und auch nach dem nächsten Start von FF kann dann per Kontextmenü in jedem Eingabefeld die Rechtschreibung konfiguriert werden.

Ein sehr nützliches Feature für zu postende Artikel in Web-Foren!

Man bemerke, dass diese Lösung Symlinks installiert, so dass kein Speicherplatz verschwendet wird.

Das Skript prüft auch ob FF oder TB installiert sind bevor es versucht die Wörterbücher dorthin zu symlinken.

Ausserdem handhabt das Skript intelligent Namenskollisionen oder mehrfach vorhandene Wörterbücher.

Man kann das Skript auch mehrfach ausführen, etwa nachdem man neue Wörterbücher hinzu installiert oder entfernt hat. In diesem Fall aktualisiert das Skript entsprechend die Symlinks.

Eine Reinstallation von FF oder TB löscht ebenfalls die Symlinks, so dass man das Script auch in diesem Fall ausführen sollte.

Oder einfacher gesagt - man kann das Skript jederzeit ausführen wenn man den Eindruck hat dass etwas mit der Liste der in TB/FF angebotenen Wörterbüchern nicht stimmt.

----------

