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
.