IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ Zend Framework

FAQ Zend FrameworkConsultez toutes les FAQ

Nombre d'auteurs : 16, nombre de questions : 39, dernière mise à jour : 15 juin 2021 

 
OuvrirSommaireZend_Translate

Dans le Bootstrap.php :

 
Sélectionnez
$translate = new Zend_Translate('array','/My/lan/');
Zend_Registry::set('Zend_Translate', $translate);
//si nous voulons fixer une langue par défaut
        Zend_Registry::set('Zend_Translate', $translate,'fr');

Dans le fichier .ini [A partir de 1.8]

 
Sélectionnez
resources.translate.registry_key = "Zend_Translate"
resources.translate.adapter = "array"
resources.translate.options.scan = "directory"
resources.translate.data = APPLICATION_PATH "/My/lan/"
//si nous voulons fixer une langue par défaut
resources.translate.default = fr

Exemple de fichier (fr.php)

 
Sélectionnez
<?php
/**
*
* @copyright 2009 MaitrePylos Technologies
* @author Ernaelsten Gerard <info@formatux.be>
* @license GPL
* @version Release: 0.1
* www.formatux.be
*/
return array(
'notAlnum' => "'%value%' ne contient pas que des lettres et/ou des
chiffres.",
'notAlpha' => "'%value%' ne contient pas que des lettres.",
'notBetween' => "'%value%' n'est pas compris entre %min% et %max%
inclus.",
'notBetweenStrict' => "'%value%' n'est pas compris entre %min% et %max
% exclus.",
'dateNotYYYY-MM-DD'=> "'%value%' n'est pas une date au format AAAA-MMJJ
(exemple : 2000-12-31).",
'dateInvalid' => "'%value%' n'est pas une date valide.",
'dateFalseFormat' => "'%value%' n'est pas une date valide au format
JJ/MM/AAAA (exemple : 31/12/2000).",
'notDigits' => "'%value%' ne contient pas que des chiffres.",
'emailAddressInvalid' => "'%value%' n'est pas une adresse mail valide
selon le format adresse@domaine.",
'emailAddressInvalidHostname' => "'%hostname%' n'est pas un domaine
valide pour l'adresse mail '%value%'.",
'emailAddressInvalidMxRecord' => "'%hostname%' n'accepte pas l'adresse
mail '%value%'.",
'emailAddressDotAtom' => "'%localPart%' ne respecte pas le format dotatom.",
'emailAddressQuotedString' => "'%localPart%' ne respecte pas le format
quoted-string.",
'emailAddressInvalidLocalPart' => "'%localPart%' n'est pas une adresse
individuelle valide.",
'notFloat' => "'%value%' n'est pas un nombre décimal.",
'notGreaterThan' => "'%value%' n'est pas strictement supérieur à '%min
%'.",
'notInt'=> "'%value%' n'est pas un nombre entier.",
'notLessThan' => "'%value%' n'est pas strictement inférieur à '%max
%'.",
'isEmpty' => "Ce champ est vide : vous devez le compléter.",
'stringEmpty' => "Ce champ est vide : vous devez le compléter.",
'regexNotMatch' => "'%value%' ne respecte pas le format '%pattern%'.",
'stringLengthTooShort' => "'%value%' fait moins de %min% caractères.",
'stringLengthTooLong' => "'%value%' fait plus de %max% caractères."
);
Créé le 13 décembre 2009  par Gérard Ernaelsten

Suivant la convention Il faut mettre dans le regisrty une entrée 'Zend_Translate'

 
Sélectionnez
Zend_Registry::set('Zend_Translate', $translate);
//ou depuis la 1.8 dans le fichier .ini
resources.translate.registry_key = "Zend_Translate"

Ensuite si vous voulez étendre un classe Zend Framework, vous retrouverez dans la plupart des cas une méthode qui s'appelle getTranslator() ou getDefaultTranslator(), qui combiner avec le registry vous rend la main sur votre objet translate.

Dans les autres cas vous rappeler voter objet se trouvant dans votre registry

 
Sélectionnez
$translate = Zend_Registry::get('Zend_Translate');
$this->view->uneVariable = $translate->translate('notAlnum');
//ou
$this->view->uneVariable = $translate->_('notAlnum');
//vous pouvez-bien entendu créer une classe pour vous faciliter la vie
class My_Translate
{
public static function translate($message) {
$translate = Zend_Registry::get('Zend_Translate');
return $translate->_($message);
}
}
//et l'utilisez comme suit
My_Translate::translate('notAlnum')
Créé le 13 décembre 2009  par Gérard Ernaelsten

J'utilise un fichier .tmx pour faire mes traductions. Je ne peux pas utiliser des caractères "Français" typiquement un "ç" ou un "é".

Solution : vérifier dans les options de votre éditeur que l'encodage correspond bien à celui donné dans l'en-tête du fichier XML :

 
Sélectionnez
<?xml version="1.0" encoding="utf-8"?>
Créé le 19 mai 2007  par Yoteco

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.