Salut,
(flûte, posté à la mauvaise adresse, je reposte)
Je continue les réglages sur la sélection de langues. Mon problème principal était la lourdeur pour ajouter de langues:
- les noms de chaque langue devait apparaître dans toutes les autres langues (pour ajouter le français, il fallait que le document anglais dise "french", l'allemand "franzosich", l'italien "parisiani" et l'espagnol encore autre chose, et on priait pour que le chinois ait la bonne idée de proposer kekchose);
- les langues autorisées étaient codées "en dur" dans le code source de SPIP.
Du coup, très chiant pour faire sa petite salade personnelle, par exemple se faire un fichier de "texte" personnalisé pour adapter l'interface à son propre goût (sans modifier toute la traduction); et même très chiant pour débuter une traduction perso (par exemple traduire entièrement l'interface en smileys, visiblement y'a des spipeux que ça intéresse).
Les modifs:
- seuls les langues faisant l'objet d'un fichier de traduction dans "/lang" sont affichés; ainsi il suffit d'ajouter "spip_es.php3" dans /lang pour que l'espagnol soit ajouté aux langues proposées;
- l'affichage des noms des langues se calcule automatiquement en 3 étapes successives (si nécessaire évidemment):
(1) la traduction "manuelle" dans la langue qu'on est en train d'utiliser (comme auparavant, donc on obtient "français", "franzosich", "french"...);
(2) une traduction automatique de tous les codes de langues recensés dans un nouveau fichier "inc_liste_langues.php3"; du coup si on ajoute un fichier pour le code "ia", ça affiche automatiquement "Interlingua" sans attendre que les autres fichiers de langue aient été mis à jour;
(3) pour les trucs vraiment hors liste, hé ben ça affiche le texte brut; par exemple un fichier de langue intitulé "spip_essai.php3" créé la langue "essai";
- pour les histoires de sécurité, le principe des "langues autorisées" est maintenu, mais c'est désormais calculé d'après la liste des fichiers contenus dans /lang. Pour pas allourdir /data, j'ai stocké ça dans un lire_meta. Fil, j'espère que ça n'introduit pas un trou de sécurité (à priori non).
Du coup, pour ajouter une langue à son propre système, il suffit d'ajouter un fichier "spip_malangue.php3" dans le dossier /lang. Dans l'idéal, "malangue" étant le code en deux lettres d'une langue. Si on se contente de ça, la nouvelle traduction et le nouveau calcul des autorisations fait que: "spip_es.php3" créé une langue "espagnol", "spanish", etc.; "spip_ia.php3" créé une langue "Interlingua" (dans toutes les langues); "spip_essai.php3" créé une langue "essai" (dans toutes les langues).
Bon, faudrait voir pour un truc similaire avec l'aide en ligne, quitte d'ailleurs à ce que les fichiers d'aide passent à l'intérieur de "lang", histoire de simplifier l'installation.
ARNO*