[spip-dev] internationalisation interface privée

L'étape d'après est de passer le script de génération des fichiers de
langue, que tu peux trouver ici :
http://rezo.net/spip-cvs/i18n/?cvsroot=SPIP-GEN

le script "prend" alors le texte des _L, le remplace par _T('code'), et
installe les correspondances code<->texte dans lang/lang_fr.php3

Seuls "hics" :

- le fichier générateur ne sait pas encore gérer les chaînes contenant des
  variables. ie passer _L("Veuillez toto $tata") en _T("toto @tata@",
  array('toto', $toto));
  n'hésite pas à faire la modif qui s'impose :wink:

ok, je regarde ce point.

- il faut définir une nomenclature pour les chaines, histoire de s'y
  retrouver par la suite ; si tu as des idées... j'ai essayé avec des trucs
  du genre 'info: gros texte d'informations', 'commande: vider la
  corbeille', 'bouton: Auteurs', etc., mais je ne suis pas convaincu.

fault-il faut un identifiant unique par chaine pour l'ensemble des
scripts ? Si oui, je propose de mettre le nom du
script devant, puis le type de message, puis l'identifiant de message
avec des '_' entre ; exple : "admin_effacer_warning_effacer_base"

Florent

> - le fichier générateur ne sait pas encore gérer les chaînes contenant des
> variables. ie passer _L("Veuillez toto $tata") en _T("toto @tata@",
> array('toto', $toto));

lire array('tata', $tata)), évidemment (le nom de la variable).

fault-il faut un identifiant unique par chaine pour l'ensemble des
scripts ?

Oui.

Si oui, je propose de mettre le nom du script devant, puis le type de
message, puis l'identifiant de message avec des '_' entre ; exple :
"admin_effacer_warning_effacer_base"

OK. Quelques commentaires :

* Certaines chaînes sont (peut-être) communes à plusieurs scripts. Rien de
  bien grave, et le générateur le signalera de toutes façons.

* les underscores, c'est bien, mais les espaces aussi. Underscore a
  l'avantage de signaler (visuellement) qu'il s'agit d'une chaine codée.
  peu importe.

* admin_effacer_warning_effacer_base : mélange anglais-francais :wink: Faire
  bien gaffe a rester lisible, simple et coherent.

-- Fil

"admin_effacer:attention:effacer base" ??

c'est peut-être plus simple à lire et ça sépare bien les composantes.

Salut,

fault-il faut un identifiant unique par chaine pour l'ensemble des
scripts ? Si oui, je propose de mettre le nom du
script devant,

Surtout pas le nom du script, sinon quand la chaîne change de script
c'est le bordel...

puis le type de message, puis l'identifiant de message
avec des '_' entre ; exple : "admin_effacer_warning_effacer_base"

Alors disons simplement : warning_effacer_base ?

Au même titre que (oui je recopie :-)) :

- icone_auteurs, icone_edition, icone_deconnexion... pour les icones
(navigation du haut)
- bouton_article_modifier, bouton_rubrique_supprimer... pour les
"boutons"
- label_article_titre, label_rubrique_descriptif... pour les labels de
formulaires

Les underscores me paraissent "naturels", pour des symboles
informatiques. Le "warning" est plus concis que "avertissement"...

a+

Antoine.

informatiques. Le "warning" est plus concis que "avertissement"...

"averto" ? T'as dû en recevoir pas mal à l'école, non ? :wink:

-- Fil

je suis en train de faire la modif sur gen_lang.php3 pour tenir compte
des variables. Comment faire pour renommer une variable array, du type :

  $nom_auteur_modif[3]

-> peut -être la renommer en @nom_auteur_modif_3@ ?

Est-ce que ça peut aller comme ça ?

.. et pour un truc plus compliqué du genre :

  $nom_auteur_modif[$a[3]]

-> remplacer en @nom_auteur_modif_a_3@

Florent

Olé,

> informatiques. Le "warning" est plus concis que "avertissement"...
"averto" ? T'as dû en recevoir pas mal à l'école, non ? :wink:

:slight_smile:

Ci-dessous un extrait de :
http://elsap1.unicaen.fr/cgi-bin/trouveter?requete=avertissement

avertissement : admonestation, admonition, alarme, alerte, annonce,
appel, avant-propos, avis, blâme, branle-bas, censure, commandement,
communication, conseil, convocation, cri, diane, indication,
information, instruction, intimation, introduction, invitation, leçon,
lettre, menace, mise en garde, monition, note, notice, objurgation,
observation, préambule, préavis, préface, préliminaire, prémonition,
présage, pressentiment, prospectus, rappel, recommandation, remontrance,
renvoi, représentation, réprimande, réprobation, reproche, sanction,
semonce, signal, signalement, signe, sommation, suggestion, voix.

Dans le classement de ces synonymes, en première place on trouve "avis".

a+

je suis en train de faire la modif sur gen_lang.php3 pour tenir compte
des variables. Comment faire pour renommer une variable array, du type :

  $nom_auteur_modif[3]

A mon avis tu ajoutes une ligne de code AVANT en mettant

    $tmp_var = $nom_auteur_modif[3];
    echo "toto $tmp_var";

d'où

    $tmp_var = $nom_auteur_modif[3];
    echo _T("toto_@tmp_var@");

-- Fil

Bonjour,

Bravo et merci pour ces superbes versions de spip toutes plus réussies les
unes que les autres.

L'internationalisation de spip est effectivement un plus certain que nous
attendons tous avec impatience :slight_smile:

Est ce que ce ne serait pas l'occasion également du coup de regrouper les
"fonctions" du back office de façon à pouvoir personnaliser le backoffice
plus tard?
Certains n'utilisent pas le même vocable pour les champs: article, breves,
rubrique, secteur selon le but du site (album photo par exemple), certains
n'utilisent pas les breves et d'autres au contraire en font quasiment des
articles alors qu'ils font de gros dossiers de plusieurs pages avec les
"articles".

Bref, il me semble que de moduler le backoffice, voire même d'en changer la
navigation avec des (je radote) squelettes spécifiques serait un plus.

Je sais que ce n'est pas d'actualité, que c'est un très gros boulot et que
je suis un profiteur infâme de spip :wink: mais puisque vous êtes en train de
refaire le tour des fonctions et de leur internationalisation ce serait peut
être l'occasion de penser la modularité pour le futur, non?

A mon avis non : c'est la signification de la 3ème valeur du tableau qui
nous intéresse, pas "la troisième valeur du tableau" (qui pourrait en
plus changer).

C'est plutôt _T("invite_toto", array('tata' => $tata))
et dans le fichier langue :
  'invite_toto' => 'Veuillez toto @tata@'

ok, j'ai fait la modif pour traiter les variables dans "gen_lang.php3".

Pour récapituler avant de commencer à appliquer le traitement :
- utilisation de noms français courts en minuscules
- utilisation d'underscores pour séparer le type de message du contenu
- pas de nom du fichier dans le nom de chaine (j'avais pas capté que le
script permet de réutiliser les chaines déjà traitées)
- formatage final comme ci-dessus :
  _T("invite_toto", array('tata' => $tata))