Nous avons une application multilingue (PHP) et utilisons gettext pour i18n. Il y a quelques classes dans le backend/model qui retournent des messages ou des formats de message pour printf(). Nous utilisons xgettext pour extraire les chaînes que nous voulons traduire.Où traduire les chaînes de message - dans la vue ou dans le modèle?
Nous appliquons la fonction g_txt T_() dans le frontend/view - cela semble être là où il appartient. Jusqu'à présent, nous avons gardé le backend propre des appels T_(), de cette façon nous pouvons également tester les messages.
Ainsi, dans le frontend, nous avons quelque chose comme
echo T_($mymodel->getMessage());
ou
printf(T_($mymodel->getMessageFormat()), $mymodel->getValue());
Cela rend impossible d'appliquer xgettext pour extraire les chaînes, à moins que nous mettons un peu T factice _ ("mon message% s pour traduire ") appelle dans la classe MyModel.
donc cela nous amène à la question plus générale:
appliquez-vous la traduction dans les classes de back-end, resp. Où appliquez-vous la traduction et comment gérez-vous les chaînes que vous devez traduire?
(je suis au courant Question: poedit workaround for dynamic gettext.)
C'est à peu près la façon dont nous le faisons. Comment faites-vous le suivi des chaînes comme "Bon travail% s vous avez% i points" à traduire? – GrGr
Souvent, nous entourons le texte par Texte!> afin qu'il facilite le grepping, puis effectuez un remplacement global sur et!> au niveau de l'API de traduction. –