8.12.21

Tristesse infinie ce matin

J’ai appris qu’un moine ermite qui était devant la gare depuis un an, peut-être depuis le début de l’épidémie, et à qui je parlais un peu tous les jours est décédé dans la semaine. De maladie ou de froid, je ne sais pas.

Ça faisait quelques jours que je ne le voyais plus, et la dernière fois, il n’avait pas l’air d’aller bien, mais moi j’étais en retard et je ne me suis pas arrêté sur mon vélo. Je l’ai regardé de loin en me maudissant de m’être levé trop tard.

Ce jour là il était assis, comme à son habitude, sur le parvis froid de la gare de Takamatsu. Il avait une serviette nouée sur la tête. Il était penché en avant comme s’il somnolait. Sa coupelle devant lui.

Aujourd’hui en allant au bureau, j’ai traversé l’esplanade en espérant l’y retrouver, mais en me disant que peut-être la police lui avait demandé d’aller ailleurs. Quelques jours auparavant je l’avais vu à la sortie d’un restaurant du quartier, il s’était apparemment fait expulser. Il s’excusait alors auprès du garçon qui lui faisait remarquer poliment que son comportement (il avait claqué la porte d’entrée ?) n’avait pas été correct. J’avais regardé l’échange de loin au cas où quelque chose se passe et que je ressente l’obligation d’intervenir, d’une manière ou d’une autre, et après quelques minutes je m’étais éloigné en souriant, en me disant que ça n’était pas bien grave.

Ce matin, il n’était toujours pas là. À midi, alors que je rentrais plus tôt du bureau, je décidais de passer au poste de police de la gare. Le monsieur de garde connaissait bien l’homme. Quand je lui ai demandé s’il savait où il était, il m’annonça sans plus de précautions que son corps avait été retrouvé la semaine dernière, à côté du parc de Tamamo, les causes du décès encore inconnues, peut-être la maladie…

J’ai ressenti une douleur sourde dans la poitrine. Un étouffement. Puis j’ai suffoqué, et je n’ai pas pu retenir mes larmes. Je suis resté dans le poste, debout, devant ce policier interloqué, et j’ai pleuré sans penser au temps, sans savoir non plus où aller. J’ai parlé un peu sans que les mots se détachent des sanglots. Puis je me suis excusé et j’ai repris le chemin de la maison, en poussant mon vélo sans force et en me cachant sans le pouvoir derrière mon masque.

Je m’étais dit souvent que je devrais l’inviter à la maison pour qu’il puisse au moins se laver et faire sa lessive (il était noir de crasse), et depuis le début de l’hiver, chaque matin quand je lui parlais je lui disais qu’il fallait faire attention à ne pas prendre froid. Il avait toujours un sourire incroyable et il me faisait ses bénédictions bizarres en me retenant avec un « attendez, je vous fais un oharai » quand je mettais 500 yens dans sa coupelle.

Pendant ces mois où il était là, avec une serviette sur la tête par temps de pluie, ou la tête nue sous le soleil dur de l’été, j’étais heureux de le retrouver. Les jours où je n’avais pas assez d’argent dans mon porte-monnaie (ou pas assez d’argent du tout) je me disais que même 50 yens, je pouvais le faire. Que ce qui comptait c’était de descendre du vélo, même mouillé, de lui dire bonjour, de l’entendre faire sa magie, qu’on se regarde, et qu’on se dise un peu à demain, peut-être. Moi, ça me faisait du bien. Ces deux ans ont été durs. Il était un repère, un point fixe, une ancre, un moment où l'anonymat n'est plus de mise, où on se découvre un peu à l'autre, où l'on devine l'un l'autre une histoire sans trop en dire.

Il avait choisi ce lieu parce qu’il était proche de la mer, qu’il était ouvert au ciel, et que le vent y était fort. Un jour où on avait parlé plus longtemps, il m’avait expliqué qu’il utilisait ces forces pour transmettre un peu d’énergie aux gens qui le matin allaient au travail. Quand je lui donnais un peu plus qu’à l’habitude, il me donnait une amulette, un jour un dessin étrange dans une petite pochette en plastique, un autre jour un livre de soutras où je pense avoir aujourd’hui trouvé son nom. En tout cas, je veux bien croire que c’est le sien, écrit en caractères maladroits, un peu comme sa langue qui hésitait toujours un peu avec les mots.

Il dormait dans les jardins publics, pas loin de la gare. Je l’y croisais souvent. Je ne voulais pas le déranger dans ces moments privés. Mais je le saluais de loin.

J’ai appelé le commissariat central aujourd’hui. On dirait que le cas n’est pas clos, qu’ils n’ont pas encore retrouvé sa famille, et de toute manière ils ne peuvent rien me dire. Le policier a eu la gentillesse de me dire qu’il me fallait faire le deuil, tout seul.

Je pense à Saint Exupéry et à son Petit Prince. Mais moi, je ne suis mécano de rien, et le désert en béton de la gare, il sera toujours ici, chaque matin, pour me rappeler que peut-être, si j’avais tendu la main, un peu plus près de lui, si j’avais vu que ses pieds étaient abîmés parce qu’il était arrivé au bout de sa route, et bien peut-être qu’il serait encore ici aujourd’hui, à parler encore aux éléments, à bénir encore d’autres gens, à insister pour que je prenne une amulette qu’il savait pourtant m’avoir déjà donnée.

22.11.21

La bague qui est tombée

La bague qui est tombée
    n'est jamais revenue.
Elle était belle pourtant, elle était en argent
    et elle me protégeait.
Elle disait aux passantes
    « ne vous approchez pas. »

Alors que j'avais bien envie pourtant
    qu'on s'approche de moi.

Qu'on me prenne la main
    et qu'on m'emmène ailleurs.

    Un peu, mais pas trop loin.

    Un peu, mais pas trop près non plus.

Là où portent ces mots
qu'on n'a pas oubliés,
qui sont juste enfouis
par des années de cendres
et de sang et de pleurs.

Ces mots qu'on voudrait bien
entendre encore une fois,

juste une fois
    puis le cœur rempli
         dire poliment merci
             et quand tout est rangé
                    éteindre la lumière
                         et partir en silence

30.10.21

J’adore les pommes de terre.

J’adore les pommes de terre. Jusque là, rien de problématique.
Et j’ai trouvé un marchand de fruits et légumes qui les vend par caisses de 10 kg. C’est le paradis.

Sauf que des fois j’oublie qu’on n’en mange pas 20 kg en 2 semaines, et j’en commande un peu trop.

L’autre jour, je passe donc la commande de 20 kg, et je dis à ma femme
— Mon ange, je t’aime, j’ai commandé des pommes de terre !
— Une seule caisse ?
(silence)
— Si tu as commandé 2 caisses, tu en annules une.
(je regarde en diagonale la vitesse d’échappement des nuages derrière les vitres pas super propres de la salle à manger)
— Oui Noriko. Tu sais que je t’aime ?
— Une caisse.
— Ok.
(avec une voix faible et une timide oscillation de la tête pour lui montrer que j’avais bien compris)

Bon, je n’aime pas annuler des trucs, c’est pas sympa pour les petits commerçants, et j’aime bien les pommes de terre.

Ce soir-là, c’était l’anniversaire de Noemi. 14 ans. Je lui avais commandé un saucisson basque (elle a été ravie quand je lui ai dit que son cadeau, ça n’était pas un livre) et j’en ai donc profité pour aller chercher les deux caisses commandées.

Le marchand est très gentil, en plus il me fait une réduction, génial, 20 kg, je me demande comment cacher la came en chargeant la voiture, et je rentre.

Notre voiture c’est un peu moins le bordel qu’avant. Avant on avait un truc plutôt gros, 8 places, qui suçait de l’essence comme un nouveau-né qui vient de se vider les intestins, et il y avait plein de recoins dans lesquels on retrouvait souvent, des années après, de souvenirs d’enfance, genre sucettes fondues, etc.

Maintenant, on a une Aqua, d’occasion. On a une consommation dont on n’aurait jamais rêvé même dans nos songes les plus fous. Avant, on faisait 8 km au litre (j’aime bien la manière japonaise d’indiquer la consommation, ça te met direct devant tes responsabilités), maintenant, on en fait 30.

Bon, elle est plus petite (je n’ai jamais vraiment compris pourquoi il nous avait fallu une 8 place à l’époque, mais à ce moment-là je n’avais pas trop mon mot à dire, pas le permis ni rien…) et elle est blanche (avant elle était grise, donc la saleté se voyait moins), et on ne peut pas déménager avec, mais il y a toujours autant de bordel dans le coffre.

Arrivé à la maison donc, et pensant que le coffre serait le dernier lieu que Mon Ange™ irait vérifier, j’y pose donc une caisse, habillement (que je croyais) dissimulée par le pare-soleil, la toile bleue de 20 m² que j’ai du acheter pour un truc, mais je ne me souviens pas, et la natte en paille qui n’a jamais vraiment rien eu à faire dans ce coffre.

Comme je déteste mentir, j’essaye de ne jamais me mettre dans une situation où une question me forcerait à dire une vérité qui fâche. Alors la caisse bénie, je la mets bien en évidence devant l’étagère qui nous sert de garde-manger, et je passe vite aux lasagnes fraiches que j’avais promis de préparer pour Noemi (les lasagnes ça vient de ma mère, et les crêpes, de mon père).

Voilà. Tout aurait dû bien se passer. J’avais vaguement prévu de remplir subrepticement la caisse autorisée avec le contenu de la caisse non autorisée, petit à petit, sans que personne ne se doute de la manœuvre, mais le réchauffement climatique ou un autre esprit maléfique en a décidé autrement.

Pour une raison qui m’échappe, Noriko a ressenti le besoin d’ouvrir le coffre ce matin alors qu’elle accompagnait les enfants à leur première piqure anti-covid. Et, alors que l’état du coffre ne lui pose en général aucun problème, et que la vaccination n’a aucun, mais alors aucun rapport avec ce qui pouvait se trouver dans le coffre à ce moment-là, j’ai reçu un message il y a une demi-heure :

— Découverte d’une caisse de pommes de terre dans le coffre.

Stupeur et tremblements… Je sens que je vais être chargé de purée et autres patates sautées pendant les nombreux jours qui viennent… Ceux qui ont des recettes simples sont invités à me contacter ASAP.

8.8.21

Mes expressions régulières

Suite d’un échange, ailleurs, sur les expressions régulières…

Petite table des matières

  1. Petite présentation du format Texinfo (texi)
  2. Emacs et sa localisation
  3. Les manuels d’Emacs
  4. Ces manuels dans OmegaT
  5. Le rôle des balises dans OmegaT
  6. Petite présentation des expressions régulières
  7. Le vif du sujet, enfin : définition des balises texi pour OmegaT

Texinfo

Hier, pris par un désir soudain de remuer des électrons toute la journée tout en restant calé sur mon canapé pendant presque 10 h d’affilée, parce que je le peux, j’ai avancé sur le chapitre « expressions régulières » du tome que j’écris au sujet d’OmegaT.

Et plutôt que d’écrire des choses qui ne servent vraiment à rien, j’ai décidé d’opter pour parler de choses qui ne servaient que partiellement à rien. Donc, j’ai choisi d’illustrer la partie regex, entre autres, avec le projet OmegaT de traduction en équipe des 2 millions de mots des manuels relatifs à l’éditeur de texte libre Emacs. Top classe non ?

Comme le format utilisé (Texinfo) est probablement utilisé par le projet GNU (récursion sur « Gnu is Not Unix », les parrains de Linux et consorts) à titre presque exclusif, et qu’il nécessite une conversion au format PO (dans po4a cette fois-ci) pour être traduisible dans nos Outils, il est peu probable que vous le rencontriez un jour. Mais c’est comme les chauves-souris dans les forêts chinoises, il faut toujours être prêt.

Et donc, l’intérêt de la manœuvre c’est qu’elle montre justement comment utiliser les expressions régulières pour pouvoir prendre en charge un format exotique quelconque, comme voulait le montrer un jeune homme sur LinkedIn l’autre jour dans son rapport sur les regex qui était cependant bourré d’approximation (surtout au sujet de la totalité des outils qu’il ne maîtrisait pas, c’est à dire tous, sauf Trados) et donc inutilisable. Dommage. Mais je digresse.

Donc, le format Texinfo.

Il est présenté dans Wikipedia de la manière suivante : https://fr.wikipedia.org/wiki/Texinfo

C’est émouvant de voir dans l’article un lien vers le premier numéro du GNU Bulletin, paru en 1986. Vive mes années lycée ! L’émotion est du même ordre que quand je vois en ligne les tout premiers numéros de Casus Belli (Ah, les Félys du numéro 2), mais j’étais au collège, et je digresse encore.

Et on trouve donc sur l’Encyclopédie, un lien vers un site apparemment mort depuis 2010, « Linux France », qui contient quand même une description du format : http://www.linux-france.org/article/memo/node79.html. Le site officiel en anglais propose une description complète des outils et du format qui mérite d’être lue pour comprendre qu’il ne s’agit pas ici d’un truc mal goupillé par des hippies du MIT, mais d’un projet extrêmement sérieux pour offrir au projet GNU un format de documentation stable et moderne (la dernière version au moment où j’écris ces mots a été publiée il y a deux mois). Le document est ici.

En tout cas, vous voyez le machin, c’est plein de @code{bidule} ou de @samp{truc} qui doivent être reproduits tels quels dans la traduction sinon c’est pas bon, et se taper ça caractère par caractère, ça ne va pas être efficace.

(retour en haut)

Emacs, et sa localisation

Le vénérable éditeur de texte qui fait tout sauf votre café et qui a fêté ses 45 ans cette année (la version 28 est en préparation) est, on peut le dire, un des principaux moteurs qui ont donné naissance au Mouvement de Libération des Logiciels dont on peut lire une brève histoire dans cet article de Wikipedia. Étant à moitié Breton, toutes ces choses là m’intéressent naturellement, mais la bête datant d’un autre âge, j’ai toujours eu du mal à m’y plonger vraiment, jusqu’à assez récemment.

Cependant, si mon utilisation quotidienne d’Emacs a été tardive, les questions qui relèvent de sa localisation me turlupinent depuis bien plus longtemps. Je m’étais donc commis d’office « responsable de la traduction des manuels Emacs » dans la vénérable association Traduc.org qui elle aussi est très inactive depuis bientôt 10 ans et je n’ai cessé de pousser le dossier dans la liste de discussion du développement d’Emacs (et voici un courriel qui parle de ça et qui est plus vieux que ma fille cadette, collégienne aujourd’hui, et qui date de 3 ans après ma version française d’OmegaT). Dix ans plus tard, en mai 2017, je proposais du code correctif pour le paquet package.el afin de remplacer les expressions qui généraient de l’anglais automatiquement (genre : si le nombre de paquets est supérieur à 1, ajoute un « s » à « paquet ») pour qu’un jour on puisse avoir une localisation possible dans d’autres langues. Le code, après multiples corrections, fut accepté en juin 2018. À ce rythme là, je me donne 20 ans pour aboutir à quelque chose dans ce domaine.

Mais je ne suis pas ici pour vous parler de mes à moitié cuites initiatives passées, mais bien pour présenter ma toute dernière : la mise en place d’une structure stable pour la traduction des manuels d’Emacs, la première étape d’icelle étant bien sûr trouver une solution pour qu’OmegaT puisse prendre en charge les fichiers de manière confortable, et bien sûr de manière synchrone, avec les membres éventuels d’une équipe de traducteurs qui ne manqueraient pas alors de se rameuter, et ça commence par trouver le moyen de simplifier le processus de traduction le plus possible, avec des définitions de balises « statiques » et validables pour OmegaT.

(retour en haut)

Les manuels d’Emacs

Comme écrit plus haut, les manuels d’Emacs sont écrits en format Texinfo. Ils sont accessibles directement dans le dépôt officiel du code, sur la forge savannah.gnu.org.

En voici un, le fichier basic.texi, qui à la ligne 11 décrit l’utilisation de base d’Emacs :

Here we explain the basics of how to enter text, make corrections, and save the text in a file. If this material is new to you, we suggest you first run the Emacs learn-by-doing tutorial, by typing @kbd{C-h t} (@code{help-with-tutorial}).

La prise en charge des fichiers .texi dans OmegaT n’est pas impossible. Il suffit d’ajouter l’extension .texi aux paramètres du filtre LaTeX avec Préférences > Filtres de fichiers. Mais les segments vont ainsi contenir des chaînes telles que les termes qui vont figurer dans les index qui gagneraient à être traduits séparément. C’est là que la conversion au format PO va nous aider.

Voici un segment en .texi avec en caractères gras la partie destinée à l’index :
@cindex insertion @cindex graphic characters You can insert an ordinary @dfn{graphic character} (e.g., @samp{a}, @samp{B}, @samp{3}, and @samp{=}) by typing the associated key.

Et voici le même segment, après conversion en PO :
You can insert an ordinary @dfn{graphic character} (e.g., @samp{a}, @samp{B}, @samp{3}, and @samp{=}) by typing the associated key.

Sachant que les deux termes destinés à l’index sont dans des segments indépendants et que la partie « code » (les deux @cindex) n’est pas considérée comme étant à traduire dans le fichier PO.

La commande pour mouliner tout ça et convertir du .texi en .po ressemble à ça :
for i in *.texi ; do po4a-gettextize -f texinfo -M utf8 -m "$i" -p "$i".fr.po ; done

Le fichier org.texi n’arrive pas au bout à cause d’un problème dans la conversion, mais il est possible d’utiliser le fichier org.org pour passer au format PO.

Avec tout ça en place, on peut mettre tous les fichiers PO dans le dossier source d’un projet OmegaT, et charger l’ensemble pour voir ce que ça donne.

(retour en haut)

OmegaT

Ceux qui ne connaissent pas OmegaT sont invités à lire le site dédié en diagonale. En quelques mots, OmegaT est un outil de traduction assistée par ordinateur, pour traducteurs professionnels. Donc moi, par exemple, et j’utilise justement OmegaT depuis bientôt 20 ans.

Pour info, dans OmegaT, ledit projet qui est hébergé sur la forge de Chapril, ici, a le volume suivant:

Segments Mots Caractères
(avec espaces)
Fichiers
Total : 164 573 1 880 16811 814 531 180

Donc, à peu près 12 000 000 de caractères, pour 1 900 000 mots, dans 165 000 segments. À 500 mots par jour, à l’heure du pastis, pépère, j’en ai pour 11 ans.

L’ensemble des 180 fichiers source fait à peu près 37 Mo. Une fois chargé dans OmegaT, le contenu traduisible exporté qui contient la totalité des segments tels qu’ils apparaissent dans l’interface d’OmegaT fait 12 Mo. BBEdit ouvre le fichier en 2-3 secondes, Emacs presque instantanément, mais ne soyons pas mesquins, BBEdit me permet de faire des trucs complexes, simplement, parce que c’est dans les menus.

BBEdit me dit donc que les balises que j’ai définies avec l’expression que je vous présente plus bas sont présentes dans près de 100 000 « lignes » (ces lignes sont les segments traduisibles qu’OmegaT a exporté), donc bien plus de la moitié du document. Et une extraction des balises me donne un total de 2 210 000 caractères, pour 232 000 chaînes (dont près de 40 000 « uniques »).

Le volume de caractères représente dans l’état actuel de l’expression plus de 18 % du travail. C’est donc énorme. Vraiment. Et ça vaut donc le coup d’automatiser leur traitement.

Et c’est là qu’interviennent OmegaT et ses balises personnalisables avec les expressions régulières.

Je parle très peu d’OmegaT ici, mais en ce qui concerne sa rapidité de chargement initial, on est dans les 20-25 secondes selon qu’on charge les 180 fichiers en mode local ou en mode « équipe », c’est à dire synchronisé avec le dépot Chapril. La création des 180 fichiers cibles traduits, prend également une vingtaine de secondes.

(retour en haut)

Je balise

Les balises dans OmegaT servent à plusieurs choses:

  1. à identifier visuellement ce qui doit rester tel quel dans le texte cible.

    Par défaut OmegaT utilise un gris clair qui contraste avec le noir du texte à traduire et le vert de l’arrière-plan.

  2. à automatiser leur saisie dans le texte.

    OmegaT offre des raccourcis-clavier pour gérer les balises (C-t = insérer la balise suivante, S-C-t = insérer toutes les balises restantes), donc pas besoin de saisir leur totalité, économie de temps, réduction des risques d’erreur à la frappe.

  3. et à vérifier que les chaînes représentées par les balises sont intégralement reproduites dans la cible.

    Cette étape va nous permettre de vérifier que les modifications éventuelles ne sont pas des erreurs.

Omegat reconnaît déjà les balises de certains fichiers standards. Par exemple HTML, ou Microsoft Office, ou DocBook, etc. Et, quel que soit le format des fichiers source, il propose également la possibilité de définir des balises supplémentaires, qui se rajouteront à celles de l’original le cas échéant.

En définissant correctement les balises de ce projet, la saisie directe des 2 230 000 caractères, avec toutes les erreurs et les oublis qu’elle pourrait comporter, pourra donc être remplacée par au plus 232 000 utilisations du raccourci clavier C-t. En bref, j’économise près de 18 % des 11 ans de travail prévus = 2 ans de vie. C’est pas rien, sachant que la définition des balises m’a coûté au plus 3 jours de travail.

Et c’est là que ça devient fun.

(retour en haut)

Régulières expressions

Les expressions régulières, c’est un amour de jeunesse. Et comme tous les amours de jeunesse, ça n’est jamais parfait, mais ça reste toujours un peu, quelque part. Ma première fois, c’était en 96, à la Librairie Avicenne, à Paris, en face de Jussieu. Le web commençait tout juste à naître au grand public, et mon boulot était de mettre le catalogue de la librairie sur le web. 6000 titres. Exportés de FileMaker. Traités dans BBEdit Lite (déjà). Et c’est là que j’ai dû me taper le manuel pour voir comment gérer la conversion entre des fichiers texte et du HTML pour éviter de tout écrire à la main. Le manuel de BBEdit est ma référence principale encore aujourd’hui quand il s’agit de regex.

Au final, Avicenne a été la deuxième librairie française a avoir un site internet (c’est moi qui l’a écrit), la première étant la Librairie Interférence, toujours en face de Jussieu, dont le propriétaire, M. Benech, est la personne qui m’avait dit quelques mois auparavant « Jean-Christophe, il y a un truc intéressant qui vient d’apparaître, ça s’appelle le web et vous devriez vous acheter un modem. »

Mais revenons à nos expressions. Il y a plein de tutoriels partout sur le web, allez les voir et revenez quand vous voulez. Si vous lisez l’anglais, profitez de celui que j’ai écrit et qui est disponible sur mon blog d’à côté :

Introduction to regular expressions

Une fois que vous avez une petite idée de ce à quoi servent ces expressions, vous pourrez apprécier plus pleinement la suite de ce document.

(retour en haut)

Définitions

Rentrons, enfin, après 1983 mots, dans le vif du sujet.

Je n’ai pas eu une approche très systématique pour définir ces balises. J’ai commencé par ce qui apparaissait dans le premier fichier, puis je suis passé au second, etc. J’ai dû faire plusieurs passages pour rationaliser ou simplifier certaines expressions trop complexes, j’ai dû en abandonner d’autres. Et j’ai fait des corrections en écrivant ces lignes. Rien n’est inscrit dans la pierre, et ça va continuer à évoluer.

La version actuelle se trouve ici : https://gist.github.com/brandelune/46faceb4c81bfee7c938282cc6dfe17c

Et au moment où j’écris ces lignes, la définition a cette valeur:

\(?(@code\{[^\}]*\}+|@command\{[^\}]*\}+|@kbd\{[^\}]*\}+|@key\{[^\}]*\}+|@file\{[^\}]*\}+|@url\{[^\}]*\}+|@uref\{[^\}]*\}+|@email\{[^\}]*\}+|@[^\{\s]*[\{\}\(\)]*|\)?\})\)?|[CM]-[^\s\}]*[ \da-zA-Z-\.]*|^[a-zA-X]$|^[a-zB-Z] |^[a-zA-Z]+(-[a-z]+)+$|(?<=,\s)[a-z-]+(?=\})|\(?(?<=[^\w][\W\{])[a-z]+(-[a-z]+)+\)?|,\s(?=[a-z-]+\})|([A-Z]){2,}|(https:/|~)((/|\\)[^\}\;\n\s\"\<,]+)|``|''|,,+

On est d’accord, c’est très moche, même en couleur.

Mais c’est sous cette forme qu’on va les mettre dans les préférences d’OmegaT, dans Préférences > Traitement des balises, comme le montre la copie d’écran suivante :

Avec une mise en forme différente, ça donne ceci (et ça me permet de corriger des erreurs qui n’apparaîtront plus à la mise en ligne…) avec des commentaires explicatifs en plus, pour votre plus grand plaisir.


      \(?
         (
          @code\{[^\}]*\}+|
          @command\{[^\}]*\}+|
          @kbd\{[^\}]*\}+|
          @key\{[^\}]*\}+|
          @file\{[^\}]*\}+|
          @url\{[^\}]*\}+|
          @uref\{[^\}]*\}+|
          @email\{[^\}]*\}+|
          @[^\{\s]*[\{\}\(\)]*|
          \)?\}
         )
      \)?|
      [CM]-[^\s\}]*[ \da-zA-Z-\.]*|^[a-zA-X]$|
      ^[a-zB-Z] |
      ^[a-zA-Z]+(-[a-z]+)+$|
      (?<=,\s)[a-z-]+(?=\})|
      \(?(?<=[^\w][\W\{])[a-z]+(-[a-z]+)+\)?|
      ,\s(?=[a-z-]+\})|
      ([A-Z]){2,}|
      (https:/|~)((/|\\)[^\}\;\n\s\"\<,]+)|
      ``|
      ''|
      ,,+

On commence par la possibilité qu’une balise soit précédée d’une parenthèse ouvrante \(, donc présente 0 ou 1 fois ?. Cette parenthèse est souvent présente dans le document et la poser ici dans la définition d’une balise nous permettra de ne pas avoir à la saisir lors de la traduction.

\(?

Ensuite on a un groupe qui commence avec «(». Le groupe est composé d’une liste de définitions séparées par | qui veut dire « ou ». On a donc une expression complexe qui décrit « la balise 1 ou la balise 2 ou la balise 3, etc. »

(

À partir d’ici et pendant 8 lignes, on a des balises clairement identifiées par leur nom. Elles commencent par une @, suivie du nom de la balise, command par exemple, suivi de l’expression \{[^\}]*\}+| qui veut dire:

  • une accolade ouvrante \{,
  • suivie de « tout sauf une accolade fermante » [^\}],
  • présent 0 fois ou plus *, il s’agit du contenu encadré dans la source par les accolades,
  • suivi d’une accolade fermante \}
  • présente 1 fois ou plus +

Comme expliqué plus haut, le | est la séparation entre les balises, il veut dire « ou », ce qu’OmegaT va interpréter comme « tout ce qui correspond à la première définition, ou à la seconde, ou à la troisième »… Toutes ces définitions contiennent le contenu du code entre accolades, qui ne sera donc pas traduisible par défaut, par exemple, @code{add-global-abbrev}.

  • @code\{[^\}]*\}+|
  • @command\{[^\}]*\}+|
  • @kbd\{[^\}]*\}+|
  • @key\{[^\}]*\}+|
  • @file\{[^\}]*\}+|
  • @url\{[^\}]*\}+|
  • @uref\{[^\}]*\}+|
  • @email\{[^\}]*\}+|

Ensuite, on a une définition générique pour les balises qui commencent avec une @, mais dont le contenu ne doit pas faire partie de la balise elle-même, car il est traduisible, par exemple, le contenu de la table des matières, ou les parties en gras ou en italique.

La @ est suivie de « tout sauf une accolade ouvrante et une espace » [^\{\s], présent 0 fois ou plus *, suivi de « une accolade ouvrante ou fermante, [\{\} ou une parenthèse ouvrante ou fermante » \(\)], présente 0 fois ou plus *, suivie de la séparation « ou » entre balises.

@[^\{\s]*[\{\}\(\)]*|

Cette balise générique n’est pas automatiquement fermée puisque son contenu dans la source est traduisible, mais l’accolade de fermeture apparaît séparément, avec la dernière partie du groupe :

\)?\}

On voit bien ici que «buffer» est accessible à la traduction, alors que @var{ et } sont grisés parce que définis en tant que balises.

Le groupe s’achève ici, avec le « ) »

)

et on trouve ici la parenthèse fermante \), présente ou non ? qui clôt cette définition un peu complexe.

\)?|

Ces définitions nous permettent d’obtenir les balises complexes suivantes :

  • (@code{inverse-add-global-abbrev})
  • @kbd{C-u - C-x a g}
  • @samp{ et }, qui enserrent une chaîne traduisible
  • @xref{ et }, qui enserrent une référence à une autre partie du manuel
  • @raisesections, qui n’enserre rien

On va passer maintenant à des choses différentes, et en premier aux définitions de commandes et de raccourcis clavier dans Emacs, qui sont par définition non traduisibles, donc parfaits pour devenir des balises statiques.

Un raccourci type est de la forme : C-x a g

ce qui veut dire Control-x suivi de a puis de g

ou encore : M-x define-global-abbrev

qui veut dire Meta-x pour lancer la commande define-global-abbrev.

Définir une balise qui couvre l’essentiel des cas de figure a pris du temps, et j’aboutis à ceci :

[CM]-[^\s\}]*[ \da-zA-Z-\.]*|

qui peut se comprendre de la manière suivante :

  • soit C, soit M, suivi d’un tiret [CM]-, suivi de
  • « tout sauf une espace et une accolade fermante » présentes 0 fois ou plus [^\s\}]*, suivi de
  • « soit une espace, soit un chiffre, soit une lettre minuscule, soit une lettre majuscule, soit un tiret, soit un point », présents 0 fois ou plus [ \da-zA-Z-\.]*
  • et on retrouve la clôture de définition | qui nous permet de passer à la définition suivante.

En reprenant ces deux définitions, on retrouve bien les deux raccourcis clavier que j’ai présentés quelques lignes plus haut, et on peut en imaginer beaucoup d’autres, comme par exemple :

  • C-M-/
  • M-g M-g
  • C-x 5 2

etc.

Les 3 définitions qui suivent représentent des chaînes de caractères très probablement non traduisibles. Par exemple :

^[a-zA-z]$|

représente une lettre seule dans un segment (c’est-à-dire entre le début du segment représenté par ^ en début de définition, et sa fin représentée par $), en général,il s’agira d’une touche à enfoncer pour lancer une commande.

^[a-zB-Z] |

Cette définition est similaire, mais ne définit qu’une lettre en début de segment suivie par une espace, là encore, très probablement une touche à enfoncer pour lancer une commande. Remarquez que j’ai retiré le « A » majuscule de la série en la définissant à partir de « B », pour éviter les phrases qui commencent par l’article anglais « A ».

^[a-zA-Z]+(-[a-z]+)+$|

Ici, on a une définition qui va identifier un caractère en début de segment ^, élément de la liste a-z ou A-Z [a-zA-Z], présent une ou plusieurs fois +, suivi par un groupe ( composé par un tiret - suivi par un caractère élément de la liste [a-z], présent une ou plusieurs fois +), le tout présent une ou plusieurs fois + et qui finit en fin de segment $.

Cette définition va nous servir à identifier des commandes posées dans le document comme élément de l’index, par exemple, et en tout cas non traduisibles, par exemple :

  • add-global-abbrev
  • next-screen-context-lines
  • backup-by-copying-when-privileged-mismatch

etc.

La définition qui suit utilise un élément un peu complexe que j’utilise ici pour la première fois. Il s’agit de positionner la définition un peu comme plus haut avec ^ et $, mais en définissant soi-même l’ancrage.

(?<=,\s)[a-z-]+(?=\})|

Ici on a deux ancrages : [a-z-]+ doit être après ,\s (donc une virgule et une espace) et avant une accolade fermante \}. L’ancrage n’est pas compris dans la balise. C’est-à-dire que la balise définie ici est seulement [a-z-]+, donc une série de mots en minuscule séparés par des tirets, à la condition que cette série soit correctement positionnée. On va ainsi définir des balises du type :

calendar-holiday-marker
dans la chaîne
@xref{Calendar Customizing, calendar-holiday-marker}.

ce qui correspond à 3 balises, en combinaison avec les définitions ci-dessus :

  • @xref{
  • calendar-holiday-marker
  • }

Le traducteur a donc la possibilité d’insérer automatiquement la première balise, de traduire le contenu de la balise, d’insérer la virgule, d’insérer la seconde balise, et d’insérer l’accolade fermante. On voit ici l’intérêt d’avoir défini plus tôt des balises génériques « ouvertes ».

Les définitions continuent avec:

\(?(?<=[^\w][\W\{])[a-z]+(-[a-z]+)+\)?|

qui enclôt entre 2 parenthèses potentielles une balise ancrée à gauche par la définition :

(?<=[^\w][\W\{])

qui veut dire « pas un caractère qui soit un élément de mot » (\w est défini comme étant en gros [a-z-A-Z0-9_]) suivi par « un caractère qui n’est pas un élément de mot ou une accolade ouvrante » [\W\{].

Cet ancrage sert à positionner une chaîne similaire à ce que nous avons vu deux définitions plus haut, mais avec seulement des minuscules, et est potentiellement fermée par une parenthèse.

La définition va nous permettre de créer des balises avec des chaînes du type suivant :

calendar-today-visible-hook

et

calendar-mark-today)

dans

(add-hook 'calendar-today-visible-hook 'calendar-mark-today)

L’anglais utilise souvent le tiret pour lier des mots. Certaines chaînes « balisées » par cette définition seront donc à traduire, par exemple :

command-line

dans

command-line argument

ou encore

learn-by-doing

dans

If you are new to Emacs, we recommend you start with the integrated, learn-by-doing tutorial, before reading the manual.

mais comme la plupart de ces chaînes représentent des commandes, j’ai pensé qu’il était préférable de les définir en tant que balises.

,\s(?=[a-z-]+\})|

Cette balise utilise un ancrage à droite pour identifier une virgule et une espace, à condition qu’elles soient placées à gauche d’un groupe de mots en minuscules séparés par des tirets. Il s’agit de la virgule qui ancrait à gauche la définition plus haut, et poser l’ensemble « ,  » en tant que balise, va nous permettre des insertions et une validation automatiques.

([A-Z]){2,}|

On passe ici à une balise composée d’au moins 2 lettres majuscules.

(https:/|~)((/|\\)[^\}\;\n\s\"\<,]+)|

Puis on arrive à des URLs ou à des chemins de fichier locaux (qui commencent par ~. Pour finir par ces définitions triviales qui vont nous éviter des saisies de guillemets ou de séquences de virgules (2 ou plus, séquence présente dans les définitions de liens bibliographiques).

``|
''|
,,+

Vous remarquez que la dernière définition n’a pas besoin du |, puisqu’il n’y a plus de choix possible. Si vous souhaitez rajouter des définitions, n’oubliez pas de rajouter cette séparation.

Voilà, nous sommes arrivés au bout de cette longue liste de définition de balises et j’arrive avec elles à « verrouiller » environ 2 230 000 lettres. Ça valait le temps passé à les définir. Et ça le vaudra de manière plus réaliste dans un projet de traduction réel avec des définitions le plus souvent bien moins complexes.

(retour en haut, si vous n’avez pas encore tout lu...)

7.8.21

Un café !

L’autre jour, j’ai trouvé un magasin de café qui vend aussi à ses clients des grains non torréfiés. J’en ai pris 100 grammes. Du brésilien. Et à la maison j’ai essayé avec une poêle Téfal, le seul truc que j’avais dispo. Ça a marché plutôt bien, au-delà du gaspillage de gaz. Les grains avaient une couleur sable foncé. Passé au moulin à main, filtre, eau chaude, et hop, un truc bien slow-life avec les moyens du bord, mais un peu pisse d’âne, comme aurait dit papi, enfin je crois.

Bon, je sais qu’avec le réchauffement climatique, boire du café brésilien torréfié au gaz de ville au Japon, et écrire ce truc sur un blog qui va faire tourner un serveur pour rien, ça fait un peu tueur en série. Pour compenser, je vous le dis, je suis allé acheter le café en vélo (et on s’est coupé deux veines début mars pour acheter une hybride d’occase qui nous fait du 3 litres aux 100).

J’avais quand même mal au cœur. Le gaz, ça ne doit pas servir à chauffer l’air, surtout en été. Alors j’ai cherché un truc. Et au Japon (et sans doute ailleurs), il existe un accessoire domestique qui sert à faire griller des graines pour la cuisine (sésame) ou pour les boissons (mugi). C’est comme une petite casserole, mais en filet métallique aux mailles serrées, avec un couvercle dans le même matériau, fixé à un bord, et qui se verrouille sur la poignée en se fermant. Vous savez sûrement comment ça s’appelle en français, moi non.

J’ai essayé le machin hier. Dans la semi-obscurité de l’appartement dans l’après-midi. Le résultat a été très torréfié… Un peu noir même. Mon café favori, Minami, nous sert des grains comme ça. Il faut aimer. Nous, on est plutôt habitués à des saveurs plus douces. Des grains plutôt marron clair.

Alors j’ai essayé de nouveau aujourd’hui. Première différence, la cuisine n’a pas été enfumée. C’est un progrès d’autant plus qu’on a eu les gens de l’entretien qui sont passés la semaine dernière pour vérifier nos détecteurs de fumée, et ils marchent au poil. Deuxième différence, j’avais allumé la lumière à côté du gaz et j’ai donc pu voir l’évolution de la torréfaction en live, et j’ai pu ainsi arrêter au moment où les grains commençaient à prendre une teinte chemin de terre un peu humide, juste quelques minutes après le début de la manip. Une estimation au nez de la consommation de gaz, un dixième de ce que j’ai eu lors de ma première tentative. Le truc est bon, avec un arrière-goût fruité, et même Yuto a dit que c’était plus buvable qu’hier.

Victoire donc du « fait à la maison » (si l’on s’autorise à omettre du processus l’extraction et l’acheminement du gaz), et commentaire de la voisine « Jean-Christophe super slow-life » ou un truc comme ça. Et là, illumination. Ce que je fais, ça n’est pas du slow-life. C’est du total-normal-life. Je ne vais pas jusqu’à faire pousser mon café tout seul (et j’aurais du mal sous ces latitudes), mais ces 20 minutes passées à faire autre chose que trimer ou regarder Twitter, c’est normal, et c’est même un peu comme ça que je me rappelle une époque pas si lointaine où on savait déjà que le café instantané c’était dégueulasse, et qu’on pouvait prendre un livre ou aller se promener pour remplir un vide (ou était-ce l’inverse ? on remplissait le vide du porte-monnaie avec des trucs chiants, ça n’a pas changé, pour passer le reste du temps à passer le temps et regarder les abeilles butiner).

Pour conclure cette journée bien avancée, je vais aussi me faire 2 litres de liquide vaisselle et 4 litres de lessive. Ah, et on a acheté l’autre jour un pot à faire du compost, pour les noyaux d’avocat sur le balcon. À dans 5 ans donc (non, je blague), quand on n’aura plus à manger des trucs importés du Mexique.

24.6.21

Stratégie papillon

Je suis parti au Japon en partie parce que je savais que ma vie à Antony allait s'achever brutalement. Il me fallait donc cautériser au plus vite une plaie qui allait saigner longtemps. Je pensais aussi que pour mieux comprendre la souffrance des autres, je devais me mettre en situation de souffrance. Alors je suis devenu étranger.

Quand on est grand, blanc, un peu éduqué et bien élevé, il n'est pas facile de devenir le méprisable de l'autre. Il y a toujours des biais. Mais c'était ça que je voulais devenir. La personne qu'on regarde et à qui l'on parle de haut, la personne dont on dit « il n'en faut pas trop, mais j'en ai quand même un parmi mes amis », la personne à qui l'on explique les yeux dans les yeux que les maux de la nation viennent de gens comme lui, mais vous, vous parlez japonais et vous faites du kendo, donc vous comprenez.

Se mettre en souffrance, ça n'est pas juste pour souffrir, même si ça l'est beaucoup, et j'en aurais parlé à mon analyste si je ne l'avais pas quitté trop tôt parce que fauché, mais aussi pour examiner les mécanismes de la douleur, les mécanismes de l'empathie, et les effets dévastateurs de son absence.

Bien sûr, j'ai échoué, et l'expérience a failli mal finir.

4.5.21

Et après

Notre fils aîné s'est marié hier soir à minuit en mairie.

Ici, il faut juste un dépôt de déclaration. On rentre, on passe les papiers au guichet, ouvert toute la nuit, le fonctionnaire tamponne, c'est bouclé.

Marrant, bizarre, étonnant, le temps passe vite, il nous en reste deux, et après, et tout ça.

14.4.21

Fermez la parenthèse

Je suis dans la salle d'attente de mon psy. Je lui ai promis il y a trois semaines de lui parler de l'ours en peluche dont je m'occupe. En japonais ça donne « 面倒見ているぬいぐるみ ». Il a forcément tiqué sur les termes.

Il y a bientôt 50 ans, l'ours en peluche qui me tenait compagnie est mort dans une machine à laver. Ça n'a pas fait la rubrique des chiens écrasés, mais ça m'a sérieusement chiffonné.

Je me souviens de lui, tenu par maman à la sortie de la machine. La tête décollée du tronc, par la vieillesse et la force centrifuge. Des années plus tard j'ai remarqué, dans le coin d'une photo de mauvaise qualité, qu'il était assis sur le dossier d'un canapé, dans un salon qui à l'époque me paraissait bien plus grand. Il avait donc bien existé.

Automne 2004. L'arcade commerçante de Marugame tombe de rouille. Magasins de fripes d'occasion, et autres tentatives de remplir l'espace vide. Trois ours en peluche de taille différente sont assis sur une table. Celui du milieu me semble correspondre le mieux à la taille du bébé qui va naître, et qui aura peut-être besoin d'un compagnon, en tout cas au début. Je l'achète. Un peu pour lui, un peu pour moi, aussi.

Finalement, ni Yuto, ni Noemi ne montreront un intérêt particulier pour cet ours, condamné donc à prendre la poussière dans un panier au fond d'une armoire. Ça n'est pas la destinée que je lui avais imaginée. Mais finalement, les ours en peluche, ça vit comment, et ça meurt comment à part dans une machine à laver ? Je n'en sais rien.

Je n'ai pas pu me résoudre à le laisser seul, dans une chambre maintenant vide. Alors je l'ai pris avec moi. Au début c'était étrange. Il était là, il me regardait, il avait l'air de me dire que maintenant, il fallait bien que je m'occupe de lui, que ça faisait plus de 16 ans qu'il attendait et qu'il faudrait bien que je me résolve à prendre mes responsabilités.

Il y a quelques mois, j'ai dû le sentir seul, ou bien c'était moi, je l'ai pris et je l'ai mis à côté de moi, dans le futon. Il n'a pas bougé. Je me suis allongé et je lui ai silencieusement souhaité bonne nuit. Noriko était allongée dans le futon d'à côté. Elle dormait déjà. Je l'ai embrassée et j'ai lu quelques pages avant d'éteindre la lumière et de m'endormir.

Au matin il était toujours là, un peu remué par la nuit. On s'est regardés, comme j'imagine on avait pu le faire il y a cinquante ans. Noriko était déjà descendue. Je l'imaginais moudre le café et faire chauffer l'eau. Je me suis levé. J'ai arrangé les couvertures pour qu'il ne prenne pas froid pendant la journée et je suis descendu.

On s'attache aux choses parce que les personnes sont imprévisibles. On ne peut savoir à l'avance la douleur qu'elles s'infligent et qui va se répendre autour d'elles, jusqu'à atteindre tous les recoins des espaces qu'elles occupent. « Personne » est féminin, et laisse à penser que je ne parle pas aussi de moi. Ça n'est pas le cas.

Les choses sont prévisibles. Elles ne se rebellent pas. On peut leur assigner de la tristesse, de la joie, du vide, et elles les conservent précieusement dans des formes, des couleurs, des douceurs, des odeurs, et on n'a pas besoin de mettre de pièce dans ce juke-box, il suffit d'être là.

22.3.21

Je vous attends

(Octobre 2016)

Dans un essai paru l’an dernier, Paul Graham tentait de donner une valeur objective à l’assertion « la vie est courte ». Pour ceci, il comptait par exemple le nombre de fois où il pourrait célébrer l’anniversaire de son fils pendant que celui-ci était encore enfant, considérant que ceci était très différent d’un anniversaire passé avec un adolescent ou même avec un adulte.

J’ai lu cet essai quelques semaines avant d’intervenir dans un lycée local. Je prépare rarement avec profondeur ces interventions, mais l’article de Graham m’avait suffisamment marqué pour qu’il devienne l’axe de celle-ci. J’en tirai une conclusion semblable à la sienne : on doit vivre sa vie en ayant conscience que celle-ci est non seulement courte, mais qu’elle peut également s’interrompre à tout moment. On doit donc éviter soigneusement ce qui ne participe pas de notre bonheur individuel, sachant que celui-ci se répercutera forcément sur la famille, le groupe de travail, et éventuellement la société dans son ensemble.

Aux élèves, je parlais de mes trois ans à la préfecture, suivis de ma décision de ne jamais accepter d’être salarié. Je préférais donc une certaine pauvreté et instabilité financière en échange de la liberté de choisir mon activité et d’user de mon temps à ma guise. Je leur parlais aussi des années de dépression qui ont suivi. La dépression n’était pas due à cette soudaine liberté, mais à ces trois ans passés sans stimulation, sans reconnaissance, sans rien de ce qui épanouit pleinement un être humain.

On ne parle pas souvent de dépression au Japon. Les élèves qui pour beaucoup avaient déjà passé de nombreuses années dans un système leur offrant peu de stimulation et pas beaucoup plus de reconnaissance ne montrèrent aucune difficulté à accepter mon discours. Les professeurs présents me dirent à la fin de la rencontre à quel point la liberté de ma parole les avait touchés. Eux aussi avaient sûrement une idée sur la question.

C’était il y a quelques mois, avant un séjour estival longtemps attendu en France où je retrouvais quelques anciens amis et où je riais beaucoup, suivi du retour à Takamatsu d’où j’écris ces lignes.

Il y a quelques jours, je disais à Yuto, mon second fils qui aura bientôt douze ans, que ce mois de septembre avait une signification particulière pour moi. À 23 ans, il y a donc tout juste 23 ans, en septembre 1993, je quittais brutalement le domicile qui depuis quelques années n’était plus que « paternel », avec pour tout bagage un livre et quelques jours de vêtements propres. Les années qui suivirent m’affectèrent profondément et tout sembla s’accélérer dans un mouvement centrifuge qui me propulsa au Japon sans que je réalise alors l’importance des choix qui s’offraient à moi.

Cet échange avec Yuto avait commencé alors que je remarquais qu’il lisait « Un collégien SDF » (ホームレス中学生) que l’on avait acheté il y a quelques années à son frère aîné. « Moi aussi j’ai été SDF, dans un certain sens. ». Je pensais à cet automne froid et humide de 93 ou je me trouvais à passer de chez un ami à chez un autre. En novembre, j’incorporais le 22e régiment d’infanterie à Vincennes pour une affectation dans le civil en espérant pouvoir rester sur la caserne. Après une première nuit mendiée, un sous-officier me fit comprendre que sans avoir fait ses classes, il était impossible de rester.

Je parlais de ça à Yuto en partie pour tenter de remettre de l’ordre dans ces épisodes de ma vie qui réapparaissaient subitement, et en partie pour bénéficier un peu de l’aura qui émanait de l’auteur devenu depuis geinojin à succès. L’effet ne fut pas celui escompté. J’eus droit à un regard oblique et à un instant d’attention patient avant que mon fils ne se replonge dans sa lecture après avoir réalisé que je n’avais pas grand-chose à ajouter.

Que Yuto préfère cette autobiographie d’un enfant de son âge aux affabulations mal documentées de son père ne me toucha pas plus que ça. Je profitais cependant de cette occasion pour me dire qu’une évaluation de ces 23 ans à l’aune du texte de Graham et de ma propre expérience me permettrait d’établir de meilleures priorités pour les années à venir.

Sur l’échelle de ma vie, il ne me reste que peu de temps à passer avec mes enfants. Aujourd’hui ils représentent l’essentiel de la stimulation et de la reconnaissance qui me fait avancer. Ils partiront un jour. Derrière eux, on ne trouvera que des photos que l’on a oublié d’imprimer, quelques graffitis sur les murs qui disparaîtront quand on changera le papier, quelques livres, quelques jouets, autant de distractions pour les fantômes qui nous tiendront alors compagnie.

Quand ils reviendront à la maison, fréquemment au début, puis une fois l’an, s’ils sont proches, on se dira « tu te souviens ? » en essayant de rattraper ces instants que l’on n’avait pas eu le temps d’apprécier alors, mais au fil des ans, ces allées et venues deviendront comme les balancements de la pendule de Brel, qui dira oui un jour, puis qui dira non un autre. Et puis, le jour où l’on aura oublié le fait même qu’il y avait eu des souvenirs, elle nous dira « je vous attends » et on pourra partir nous aussi.

Nuit

(Janvier 2018)


Un bol de riz complet, et une bière. J’ai quand même ajouté un peu de poivre et de sel, et j’avais mis une gousse d’ail pour la cuisson. Ça va pour une soirée, et peut-être une matinée.


Le silence n’est pas absolu. J’entends un insecte dehors. Et il y a une vibration. Peut-être le néon. Quand je suis entré, et c’est peut-être à cause du vent qui soufflait, il y a eu un bruit sourd, sur le toit, juste au-dessus de la cuisine. La première fois ça m’a surpris. J’ai pensé à un chat. La seconde je me suis demandé si c’était un farceur qui s’amusait dehors. Mais il aurait fallu passer à travers tellement de broussailles que j’aurais entendu quelque chose. Un sanglier? Je l’aurais entendu arriver aussi. Alors ça doit être une branche cassée qui ne cesse de tomber. J’irai voir demain matin. Pour le moment, la lumière de la cuisine éclaire directement le clavier, l’ordinateur est posé sur la table en bois, autour de laquelle sont rangées six chaises. J’en occupe une. La canette de bière vide à droite, devant le bol, vide lui aussi. Devant se trouvent les photocopies du livre que je dois traduire et sur lequel je n’avance pas d’un pouce. À gauche j’ai quelques feuilles d’origami sur lesquelles est posé mon étui à lunettes.


Les lunettes sont sur mon nez. Je ne peux plus m’en passer. Il faudrait que je sois à un mètre de l’écran pour voir les lettres clairement, et alors elles seraient trop petites. Je ne pensais pas que ma vue s’affaiblirait aussi rapidement. En quelques années je suis passé d’un léger flou à ma distance de lecture, à l’impossibilité de distinguer les lettres dès que le jour tombait.


Ce lieu est différent. Et pour cause, à la maison je ne peux pas travailler la nuit sans craindre de réveiller quelqu’un. Il faudrait que je sorte de la chambre, que je descende au rez-de-chaussée, que je m’installe sur la table du salon. Mais là, la lumière remonterait quand même par l’ouverture qu’il y a dans le plafond. Elle passerait par le dessous de la porte et gênerait le sommeil de ma femme, et celui de ma belle-mère qui dort dans une pièce adjacente au salon. Quand je suis en bas, elle sort toujours de sa chambre pour voir si elle n’a pas oublié d’éteindre une lumière. Elle voit que c’est moi, et retourne dormir, mais sans s’empêcher un regard réprobateur. Ou peut-être est-ce seulement la fatigue et la lumière qui l’éblouit.


Et puis ma femme ne peut pas s’endormir sans me demander à de multiples reprises quand je viendrais la rejoindre, et se réveille parfois de me savoir debout. Je suis au clavier, je tape doucement sur les lettres, et je lui dis «j’arrive» en espérant que le sommeil la retrouve au plus tôt.


Ici, personne. Seulement moi. Dans cette salle à manger rustique qu’on a oubliée il y a 20 ans, à un pas d’une chambre à tatamis dans laquelle je n’ai toujours pas installé mon futon. Et personne dans cette chambre, ni dans aucune autre pièce, et personne non plus dans la maison d’à côté, derrière la friche, un jardin il y a longtemps. Personne. Si je sortais, je serais le seul à arpenter les ruelles du village. Je pourrais voir les étoiles, et les lumières des bateaux qui ne cessent de traverser ces alentours. Et je pourrais les entendre aussi. Un ronronnement régulier, bien plus régulier que le bruit des voitures sur les voies rapides qui à distance encerclent notre maison. Un ronronnement régulier, qui ne cesse qu’avec le matin et le lever du monde, et les bruits qui l’accompagnent. Sauf les plus gros bateaux, ceux qui sont si hauts qu’ils semblent dépasser l’île. Eux, on les entend même sous le soleil.


La bière commence à faire son effet. J’en ai acheté 4. Des grosses. Mais je sais que si je bois trop, je vais me réveiller dans la nuit. Alors j’en garde 3 pour demain. Une pour le matin, et deux pour l’après-midi. Ce soir, je resterai aussi sobre que ces 5,5 % d’alcool me le permettront. Combinés à ma fatigue, je sens qu’il ne me reste que peu de temps éveillé.


La distance me permet de respirer un peu. L’absence des autres fait ressortir ma présence dans ce vide. J’existe un peu. Sans avoir besoin de jouer. Pas besoin de sourire, ou de froncer les sourcils. Pas besoin de dire bonne nuit. Pas besoin de penser aux mouvements de l’autre et de calculer le moment probable de l’appel. Juste moi, pour une nuit.


Ce presque silence est enivrant. Je n’ai rien dit depuis la fin de l’après-midi. Et je n’ai aucune raison de dire quoi que ce soit avant demain, mais à une heure que moi seul déciderai. Quand je sortirai de la maison, quand je me dirigerai vers le cœur du village, quand je m’arrêterai au petit café que tient un ami. Ou peut-être que non. Peut-être que je franchirai la colline par le haut pour éviter les habitations et que j’irai directement vers mon lopin de terre, mangé par des herbes que je n’ai pas souhaitées. Peut-être que je passerai les quelques heures avant mon retour à regarder la mer, et l’autre rive, celle à laquelle j’appartiens, mais sans amour. Celle dans laquelle mes nuits seules furent toujours douloureuses et où la douleur bousculait mes silences à en pleurer.


Le choc résonne encore sur le toit. Une branche, sans aucun doute. Cette nuit, je ne pleurerai pas. Ici, je suis libre même si mon vaisseau n’avancera jamais sous le vent. Ce sont les flots qui emportent tout, et le reste.