Que fait Salvatore ?

Salvatore est le robot de traduction de la zone de SPIP.

Il effectue quatre actions :

  1. récupération des fichiers de langue sur le serveur svn ;
  2. insertion dans la base de données de trad.spip.net des fichiers de langue récupérés ;
  3. exportation des fichiers de langue traduits de trad.spip.net dans le bon format ;
  4. envoi de ces fichiers de langue sur le serveur svn

1. Récupération des fichiers de langue

Pour récupérer un fichier de langue, Salvatore se base sur le fichier traductions.txt qui est situé à la racine de la zone.

Chaque ligne définit un module différent de langue. Salvatore crée un répertoire temporaire de stockage où il récupère les fichiers à mettre en base de données.

Chaque utilisateur de la zone de SPIP? peut y ajouter un nouveau module.

Chaque fois qu’il réalise cette opération, Salvatore récupère la dernière version des fichiers.

NB : cette action est réalisée par le fichier tireur.php

2. Insertion des fichiers de langue dans la base de données

Après l’étape de récupération des fichiers, Salvatore les insère dans la base de données.

Si le module n’existe pas

Salvatore se charge de le créer automatiquement.

Il importe automatiquement la langue principale du module définie dans le fichier listant les modules. Il considèrera alors ce "fichier original" comme source.

Il importe en base les différents fichiers de traductions associés au module. Si ces fichiers sont incomplets, Salvatore se charge de créer les chaînes manquantes en leur donnant le statut NEW indiquant que ces chaînes sont à traduire.

Si le module est déjà existant

Il met à jour dans la base le contenu du fichier de langue principal, ce fichier est toujours réimporté complètement en base.

Si des modifications ont été apportées à ce fichier depuis la dernière importation, il définit automatiquement les modifications apportées en :

  • créant pour les différentes langues secondaires les chaînes manquantes à partir du contenu de la chaine originale, leur donnant le statut NEW ;
  • modifiant le statut des chaînes préalablement existantes mais modifiées en leur donnant le statut MODIF ;

NB : cette action est réalisée par le fichier lecteur.php.

3. Exportation des fichiers de langue

Salvatore exporte chaque module de langue un par un en commençant par la langue mère et poursuivant par chaque langue traduite.

Il n’exporte que les langues au moins traduites à 50%.

Au moment de l’export, il convertit toute entité HTML en caractères UTF-8 afin de rendre les fichiers de langue humainement lisibles (SPIP est compatible dans ce format d’encodage).

En exportant ces fichiers, il écrase les fichiers temporaires stockés lors de la récupération sur le serveur SVN.

Il en profite pour créer (dans le cas d’un nouveau module importé) ou modifier le fichier xml définissant chaque contributeur pour chaque langue.

NB : cette action est réalisée par le fichier ecriveur.php.

4. Envoi des fichiers de langue

Après écriture des fichiers de langue, Salvatore se charge de les envoyer sur le serveur SVN.

Il ajoute les nouveaux fichiers exportés et envoie les différentes modifications.

NB : cette action est réalisée par le fichier pousseur.php.