Gnomen suomentajaryhmä

(X)Emacsin PO-tila ja oikoluku
Pauli Virtanen (pauli.virtanen@saunalahti.fi) 4.8.2000
Päivitetty 25.8.2000

Tämä ohje kertoo, miten Emacsin po-tilan saa näyttämään kirjoitusvirheet heti kun olet niitä tehnyt, ja ehdottamaan korjauksia niihin. Kyseessä on siis samanlainen oikolukujärjestelmä kuin Microsoftin Wordissa.

1 Tarvittavat osat

Jotta kirjoitusvirheiden näyttäminen ja oikaisuluku toimisi Emacsissa po-tilan kanssa, tarvitset tietysti Emacsin, ispellin sekä siihen suomen kielen tuen. Muut tarvittavat palaset ovat Emacsin ispell-tuki ja flyspell.

Useimpien GNU/Linux-jakeluiden mukana tulevat ainakin ispell ja Emacs. Ne kannattaakin asentaa jakelusi paketeista. Tällöin Emacsin ispell-tuki sekä mahdollisesti myös flyspell tulevat useimmiten Emacsin mukana. Jos käyttämässäsi jakelupaketissa ei kuitenkaan ole jotakin näistä osista, niin voit hakea puuttuvat osat Internetistä (ks. liite A).

2 Osien asentaminen

2.1 Ensitarkistus

Ensiksi kannattaa tarkistaa turhan työn välttämiseksi, etteivät osat ole jo asennettuina. Siispä käynnistä Emacs, ja näppäile:

M-x ispell ENTER

Jos komento onnistuu, niin sekä ispell että Emacsin ispell-tuki on asennettu. Flyspellin havaitsemiseksi näppäile Emacsissa:

M-x flyspell-mode ENTER

Suomenkielisen sanaston olemassaolon voit tarkistaa näppäilemällä joko

M-x ispell-change-dictionary ENTER suomi ENTER

tai

M-x ispell-change-dictionary ENTER finnish ENTER

Jos myös toinen näistä onnistuu, niin kaikki tarpeelliset osat ovat asennettu, ja voit siirtyä kappaleeseen 3. Onnittelut.

2.2 ispell

Asenna ispell joko jakelusi paketista, tai imuroi se Internetistä (ks. liite A), ja asenna sen mukana tulevien ohjeiden mukaisesti.

2.3 Suomenkielinen sanasto ispellille

Jos GNU/Linux-jakelusi mukana ei tullut kunnollista suomenkielistä oikolukusanastoa, voit yrittää hakea parempaa Internetistä (ks. liite A). Asenna sanasto sen mukana tulevien ohjeiden mukaisesti.

2.4 Emacsin ispell-tuki ja flyspell

Ensimmäiseksi kopioi tiedostot "flyspell.el" ja "ispell.el" hakemistoon, jonka saat selville komennolla:

find / -name '*lisp' -type d

Hakemisto on yleensä joko "/usr/share/emacs/site-lisp" tai "/usr/local/lib/emacs/site-lisp". Seuraavaksi lisää seuraavat rivit "~/.emacs" -tiedostoosi.


(autoload 'ispell "ispell") (autoload 'ispell-change-dictionary "ispell") (autoload 'flyspell-mode "flyspell")
2.4.1 Emacsin ispell-tuki ja suomenkielinen sanasto

Jotta Emacsin ispell-tuki huomaisi suomenkielisen sanaston olemassaolon, niin lisää seuraavat kuusi riviä "~/.emacs" -tiedostoosi.


(setq ispell-local-dictionary-alist
(append ispell-local-dictionary-alist
'(("suomi" ; Finnish mode
"[A-Za-z\345\344\366\351\340\374\350\346\370\347\305\304\326\311\300\334\310
\30
6\330\307]"
"[A-Za-z\345\344\366\351\340\374\350\346\370\347\305\304\326\311\300\334\310
\30
6\330\307]"
"[']" nil ("-C" "-m" "-d" "suomi") "list" iso-8859-1))))

3 Asetusten asettaminen

Seuraavaksi on vuorossa asetusten säätäminen kohdalleen. Vaikeaa se ei ole: useimmissa tapauksissa joidenkin rivien lisääminen "~/.emacs"-tiedostoosi riittää.

3.1 Flyspell

Jotta flyspell ei yrittäisi oikaisulukea po-tiedoston kommentteja ja avainsanoja, lisää seuraavat rivit "~/.emacs"-tiedostoosi.


;;
;; Asetetaan se oikolukemaan vain suomennoksia
;;
(put 'po-mode 'flyspell-mode-predicate 'po-mode-flyspell-verify)
(defun po-mode-flyspell-verify ()
  "This function is used for `flyspell-generic-check-word-p' in po-mode."
  (save-excursion
    (if (or (looking-at "msgstr")
            (save-excursion
              (progn
                (skip-chars-backward "mgrst")
                (looking-at "msgstr"))))
        nil
      (progn
        (re-search-backward "\\(^msgstr\\|^msgid\\|^#\\)" nil t)
        (if (looking-at "msgstr")
            (if (progn
                  (re-search-backward
                   "\\(^msgstr\\|^msgid\\|^#\\)" nil t)
                  (not (looking-at "msgid \"\"")))
              t)
          nil)))))				

Lisäksi jos haluat flyspellin käynnistyvän automaattisesti aina kun avaat .po-tiedoston, niin lisää seuraavat rivit "~/.emacs"-tiedostoosi.

;;
;; Asetetaan flyspell olemaan aina käynnissä po-tilassa
;;
(defun my-po-mode-hook ()
  (ispell-change-dictionary "suomi") ;; HUOM! Tuo saattaa olla muukin
  (flyspell-mode))                   ;;       kuin "suomi", esimerkiksi
                                     ;;       "finnish".
(add-hook 'po-mode-hook 'my-po-mode-hook)
(add-hook 'po-subedit-mode-hook 'my-po-mode-hook)
(add-hook 'po-subedit-mode-hook 'flyspell-buffer)

3.2 Ispell

En ole keksinyt miten Emacsin ispellillä voisi oikaisulukea po-tiedostoja hyvin.

Lähinnä korvaava ratkaisu on käyttää spellutilsin pospell-ohjelmaa (ks. liite A). Tämän ohjelman käyttöä helpottaakseni olen kirjoittanut seuraavan pienen skriptin.

#! /bin/sh
#
# Käyttö: pofispell <oikaisuluettava po-tiedosto>
#
exec pospell -n "$1" -p ispell - -d finnish -x %f

A. Tarvittavien ohjelmien Internet-osoitteet

OhjelmaOsoite
ispell http://fmg-www.cs.ucla.edu/geoff/ispell.html
Emacsin ispell-tuki http://kdstevens.com/~stevens/ispell-page.html
flyspell http://kaolin.unice.fr/~serrano
spellutils ja pospell http://home.worldonline.dk/~byrial/spellutils/
Suomenkielinen sanasto ispelliin http://ispell-fi.sourceforge.net/




menu
   Pääsivu
   Mitä uutta?
   Sanakirja
   Ohjeita
   Paketit
   Linkit
   Raportit
   Status
   Kuvia

sourceforge
   Projektisivu
   Postituslistat




[ Ylläpito ]   SourceForge Logo   [ Pääsivu ]