19 avril 2004

Saisie Multilingue sous Linux

Ce qui suit a est destiné aux utilisateurs de Linux, cependant une bonne partie des informations doivent être valables pour tous les Unix, en particulier les xBSD.

Encodage

Pour résumer le problème des encodages, il faut rappeler que l'informatique nous vient des États-Unis. Par conséquent, les premiers ordinateurs utilisaient l'ASCII, codé sur 7 bits qui permettent de travailler sur 128 caractères. Les caractères accentués n'étaient pas utilisables, les caractères non romains encore moins.

Forcément, les Européens voulaient pouvoir saisir des accents, donc l'ASCII à été étendu a 8 bits, soit 256 caractères. C'est l'ISO_8859-1, qui est maintenant remplacé par l'ISO-8859-15. Mais bien sûr, pour les Japonais (ainsi que pour les Grecs, les Russes, les Coréens, les Arabes et quelques milliards de personnes qui ont une langue qui ne se base pas sur l'alphabet romain) ça n'a pas apporté grand chose. Chacun a donc établi sa propre norme, et le Japon ne compte pas moins de trois normes ! ISO, EUC-JP et SJIS. Sous Unix, c'est généralement EUC-JP qui est préféré.

Saisie du Français

J'imagine que vous savez déjà comment saisir du français : si vous avez un clavier français, aucun problème. Si vous utilisez un clavier américain, japonais ou autre, voici une astuce pour saisir le français ajoutez "keycode 0x73 = Multi_key" au fichier .Xmodmap qui se trouve dans votre répertoire "home". S'il n'existe pas, créez-le. Ensuite, lancez xmodmap ~/.Xmodmap depuis un terminal.

Saisie du Japonais

Il faut deux choses pour saisir du japonais :

  1. Un serveur qui tourne en fond et fait la conversion kana -> kanji quand on lui le demande.
  2. Une application côte interface graphique qui récupere la saisie, et demande au serveur de conversion les possibilités et permet à l'utilisateur de sélectionner de façon commode la bonne combinaison.

Serveur de conversion kana - kanji

Au choix, Canna, FreeWnn ou SKK. Pour ma part, j'utilise généralement Canna. L'installation dépend généralement de la distribution, mais notez bien que le serveur doit tourner en tâche de fond. Là encore, la façon de l'ajouter au scripts de démarrage dépend de votre distribution/système, mais c'est généralement automatique.

Chez moi c'est Canna, j'ai donc la ligne suivante quand je fais un 'ps aux' :

root 5035 0.0 0.1 1820 780 ? S 00:59 0:00 /usr/sbin/cannaserver

Interface graphique

kinput2

kinput2 était jusqu'il y a peu la seule interface graphique libre à fonctionner pour toutes les applis X Windows, donc on pouvait difficilement s'en passer. J'en parle ici parce que j'essaye d'être exhaustif, mais je vous recommande plutôt im-ja. Le seul intérêt de kinput2 sur im-ja, c'est qu'il ne dépend que de la Xlib. Le problème, c'est que c'est assez laid et très minimaliste. Mais ça marche. Pour kinput2, il faut necessairement avoir les variables d'environnement en japonais. Voici un exemple de script pour lancer un logiciel avec kinput2 :

#!/bin/sh
# Environnement japonais, mais messages en francais !
export LANG=ja_JP.utf8
export LC_MESSAGES=ja_JP.eucJP
export LC_CTYPE=ja_JP.eucJP
export LANGUAGE=fr
# On lance kinput2
export XMODIFIERS=@im=kinput2
kinput2 -xim -kinput -canna &
ooffice

Pour avoir en tout le temps la saisie en japonais, il suffit d'ajouter ces lignes a votre .xsession.

gtk-im et im-ja

gtk-im est le système de saisie pour les applications gtk+2 : très moderne et très pratique. Une fois que tout est installé, il suffit de faire un clic droit dans n'importe quel champ (en plein milieu de gedit par exemple) et on peut choisir "methode de saisie"->"japonais". C'est complètement indépendant des variables d'environnement.

On peut aussi configurer gtk pour lui dire que la methode de saisie par défaut c'est le japonais et ce sera indépendement des variables d'environnement.