FAQ Zend Framework
FAQ Zend FrameworkConsultez toutes les FAQ
Nombre d'auteurs : 16, nombre de questions : 39, dernière mise à jour : 15 juin 2021
Dans le Bootstrap.php :
$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]
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)
<?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."
);
Suivant la convention Il faut mettre dans le regisrty une entrée 'Zend_Translate'
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
$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'
)
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 :
<?xml version="1.0" encoding="utf-8"?>