> CopixI18N
fr

Index
    - Internationalisation des pages
      - Les fichiers properties
      - Utilisation
        - Syntaxe de base
        - Syntaxe avancée
        - Utilisation dans un template PHP
        - Utilisation dans un template Smarty
    - Les autres fonctionnalités de CopixI18N
      - Langue courante
      - Charset courant
      - Pays courant
      - Formats de date
        - Formater uniquement la date
        - Formater la date et l'heure
        - Masque de formatage
    - Voir aussi

Internationalisation des pages

CopixI18N permet d'internationaliser votre application Copix. Ainsi, à partir d'un seul template, vous êtes en mesure d'adapter le contenu des pages générées en fonction de la langue courante du navigateur.

Les fichiers properties

Il faut tout d'abord créer des fichiers pour contenir les différentes chaînes traduites. Il y aura un fichier par langue. Vous les rangerez dans le dossier "resources" de votre module.

Chaque fichier suivra la convention de nommage suivante : groupe[_langue[_COUNTRY]].properties

Prenons par exemple le fichier modules/public/stable/default/resources/default_fr.properties. Celui-ci contient :


default.welcome2Copix3 = Bienvenue dans Copix 3 !
default.configureDB = Configurer une base de données
default.configureMoreDB = Configurer une base de données supplémentaire
default.admin = Accéder à l'interface d'administration
default.officialLinks = Liens officiels
default.quickStart = Bien commencer
 

Sur une ligne, la première partie (default.welcome2Copix3) permet d'identifier la chaîne ; nous l'appellerons "clé". Notez que toutes les clés commencent par le nom du groupe utilisé pour nommer le fichier.

A la suite, après le signe =, on trouve la valeur de la chaîne traduite dans une langue donnée (ici le français).

Plus généralement, une clé suivra la convention de nommage suivante : [groupe].[identifiantdechaine] = valeur

Utilisation

Pour réutiliser une chaîne, il suffit donc de faire référence à sa clé.

Syntaxe de base

Dans du code PHP, pour récupérer le texte "Bienvenue dans Copix 3 !" dans la langue courante, c'est tout simple :


$maChaine = _i18n ('default.welcome2Copix3');
 

ou avec l'ancienne syntaxe :


$maChaine = CopixI18N::get ('default.welcome2Copix3');
 

Notez qu'il est possible de faire référence à une clé située en dehors du module courant. Il faut alors simplement préciser le nom du module contenant cette clé. Par exemple :


$maChaine = _i18n ('default|default.welcome2Copix3');
 

Syntaxe avancée

Supposons un fichier default2.properties contenant :


default2.messageSurX = voici un message sur %s
default2.messageSurXetY = voici un message sur %s et %s
 

Vous remarquerez que les chaînes contiennent un code spécial "%s". Cela permet de les personnaliser en passant un tableau en paramètre supplémentaire à la syntaxe de base. Ce tableau contiendra les valeurs respectives des "%s" des chaînes.

Pour plus d'informations sur le formatage de chaîne, reportez-vous au manuel PHP : http://fr.php.net/sprintf


_i18n ('default2.messageSurX', 'valeur de X');
//ou _i18n ('default2.messageSurX', array ('valeur de X'));

_i18n ('default2.messageSurXetY', array ('valeur de X', 'valeur de Y'));
 

Il est également possible avec la bonne syntaxe de forcer l'ordre d'affichage des paramètres :


default2.messageEtPositionDeValeurs = voici un message avec le deuxième paramètre %2$s et le premier %1$s
 

_i18n ('default2.messageEtPositionDeValeurs', array ('Paramètre 1', 'Paramètre 2'));
 

Il est même possible de forcer une langue ou un charset :


$langue = 'fr'; //ou $langue = 'fr_fr';
$maChaine = _i18n ('default2.messageSurXetY', array ('valeur de X', 'valeur de Y'), $langue);
 

Utilisation dans un template PHP

Dans un template PHP, on utilise la syntaxe qui convient le mieux, par exemple :


<p>
    <?php echo _i18n ('default.welcome2Copix3'); ?>
</p>
 

Utilisation dans un template Smarty

Dans un template Smarty, il vous suffit d'utiliser le tag dédié :


<p>
    {i18n key='default.welcome2Copix3'}
</p>
 

Les autres fonctionnalités de CopixI18N

CopixI18N permet également de rendre bien d'autres services. Découvrons-les ensemble.

Langue courante

Pour obtenir le code correspondant à la langue courante du navigateur :


$langue = CopixI18N::getLang ();
 

Pour définir le code correspondant à la langue courante :


//on demande à utiliser le français
CopixI18N::setLang ('fr');
 

Charset courant

Pour obtenir le code correspondant au charset courant :


$charset = CopixI18N::getCharset ();
 

Pour définir le code correspondant au charset courant :


CopixI18N::setLang ('fr_fr');
 

Pays courant

Pour obtenir le code correspondant au pays courant :


$charset = CopixI18N::getCountry ();
 

Pour définir le code correspondant au pays courant :


//on demande à utiliser le pays france
CopixI18N::setCountry ('FR');
 

Formats de date

CopixI18N permet de générer le formatage à appliquer aux dates ou heures en fonction de la langue courante. La chaîne récupérée pourra être utilisée avec les fonctions PHP habituelles (date, time, ...)

Pour manipuler les dates, il est néanmoins recommander d'utiliser CopixDateTime qui emploie d'ailleurs en interne CopixI18N afin d'obtenir le bon format.

Formater uniquement la date


$separateur = '/';
$format = CopixI18N::getDateFormat ($separateur);

echo "Format: ". $format ."
"
;
echo "Date: ". date($format);
 

Pour la langue courante "fr" (français), ceci affichera :


Format: d/m/Y
Date: 26/06/2007
 

Formater la date et l'heure


$separateur = '/';
$format = CopixI18N::getDateTimeFormat ($separateur);

echo "Format: ". $format ."
"
;
echo "Date: ". date($format);
 

Pour la langue courante "fr" (français), ceci affichera :


Format: d/m/Y H:i:s
Date: 26/06/2007 18:40:00
 

Masque de formatage


$separateur = '/';
$mask = CopixI18N::getDateTimeMask ($separateur);
 

Voir aussi