Considérations sur la stratégie de nommage et d'internationalisation des templates
Imprimer

Stratégie d'internationalisation

Structuration des fichiers de localisation

Chaque localisation du système doit contenir un fichier common.php et un fichier [module].php par module. Ces fichiers sont situés dans un dossier portant comme nom le code à deux lettres de la langue, qui est lui même situé dans le dossier locales à la racine de Mediboard.

Cependant, il est devenu nécessaire de pouvoir placer ces fichiers dans le dossier des modules depuis la mise en place des modules externes. Les nouveaux fichiers sont alors placés dans un dossier locales dans le dossier du module. Chaque fichier de langue à le même format interne, mais est nommé avec le code à deux chiffres de la langue plutôt que le nom du module.

Important : Pour faciliter le travail des traducteurs, Mediboard met à disposition deux outils pour ne pas avoir à manipuler directement les fichiers de localisation

Contenu du common.php

On y trouvera tout ce qui ne dépend pas d'un module, mais qui est plus général au système. Notamment :

Les boutons classiques
Valider, Modifier, Annuler, Chercher, ...

les types de bases
bool.1 donne 'oui'

Contenu de [module].php

On y mettra tout ce qui est spécifique à un module, ses classes, ses templates.

Informations sur le module

module-[module]-court
le nom du module version court, ex : 'Cabinet'
module-[module]-long
la description du module, ex : 'Gestion de cabinet de consultation'
mod-[module]-tab-[file]
le nom d'un onglet, ex : 'Planifier une consultation'

pref-[preference]
le nom de la préférence, ex 'Répertoire d'InterMax'
pref-[preference]-desc
la description de la préférence, ex 'Répertoire d'Interopérabilité de LogicMax sur le poste utilisateur'
pref-[preference]-[value]
un des valeurs possibles pour la préférence, ex 'Mode expert'

config-[module]-[class]-[field]
nom des variables de configuration

Informations sur les objets

[class]-msg-create
confirmation de création d'objet, ex 'Thème crée'
[class]-msg-modify
confirmation de modification d'objet, ex ''Thème modifié
[class]-msg-delete
confirmation de suppression d'objet, ex 'Thème supprimé'
[class]-title-create
titre d'en tête (TH) de création, ex 'Nouveau thème'
[class]-title-modify
titre d'en tête (TH) de modification, ex 'Modifier le thème'

[class]
le nom réel de la classe, ex 'Patient'
[class].one
le nom d'un objet, ex 'un patient'
[class].more
le nom de plusieurs objets, ex 'les patients'
[class].all
tous les objets, ex 'tous les patients'
[class].none
aucun objet, ex 'Aucun favori disponible'
[class].select
choisir un objet, ex 'Sélectionner un patient'

[class]-[prop]
le label d'une propriété, ex 'Téléphone'
[class]-[prop]-desc
la description du label, ex 'Numéro de téléphone du patient'
[class]-[prop]-court
court label pour les colonnes entre autres, ex 'Tel.'
[class].[prop-enum].[value-enum]
le label d'une valeur d'une énumération, ex 'Ambulatoire'
[class].[prop-enum].
le label de la valeur "vide" d'une énumération, ex 'Aucun type'

[class]-back-[backname]
le nom d'une collection de backref, ex 'Fichiers joints'

Autres informations

[class]-button-[key]
bouton particulier pour une classe, ex 'button-CDocGed-notviewcancel'
[class]-msg-[key]
message particulier

Illustration dans les templates

L'exemple suivant illustre l'utilisation des textes localisées dans les fichiers templates Smarty :

  • soit codées en direct : utilisation de la balise {WARNING: Plugin disabled tr!Text{{/tr}}
  • soit codées en via les accesseurs de propriétésdirect : utilisation de la balise {{mb_label}} et {{mb_value}}

Ici sont affichées les informations concernant les affectations d'un séjour :

<table class="tbl">
  <tr>
    <th class="title" colspan="10">
      {{tr}}CSejour-back-affectations{{/tr}}
    </th>
  </tr>
  
  <tr>
    <th>{{mb_label class=CAffectation field=lit_id}}</th>
    <th>{{mb_label class=CAffectation field=entree}}</th>
    <th>{{mb_label class=CAffectation field=sortie}}</th>
    <th>{{mb_label class=CAffectation field=effectue}}</th>
  </tr>

  {{foreach from=$sejour->_ref_affectations item=_affectation}}
  <tr>
    <td>{{$_affectation->_ref_lit->_view}}</td>
    <td>{{mb_value object=$_affectation field=entree}}</td>
    <td>{{mb_value object=$_affectation field=sortie}}</td>
    <td>{{mb_value object=$_affectation field=effectue}}</td>
  </tr>
  {{/foreach}}
  
</table>


Dernièrement modifié par Fabien1590 points  , Basé sur le travail de maskas933 points  , rhum14216 points  et mytto10228 points  .
Modifiée dernièrement le vendredi 07 de mai, 2010 19h25m07.