J'ai une extension qui affiche l'heure à laquelle un cri a été posté, par exemple:
il y a 1 jour
Cette chaîne est générée dans mon aide comme suit:
$num . ' ' . JText::_('SHOUT_TIME') . ' ' . JText::_('SHOUT_AGO')
Les constantes de langage sont les suivantes:
SHOUT_TIME="day"
SHOUT_AGO="ago"
Maintenant, en anglais cela convient parfaitement, cependant en allemand, ago
se traduit par vor
.
Le résultat de ceci serait 1 tag vor
, cependant il devrait être vor 1 tag
.
Gardez à l'esprit que SHOUT_TIME
, pourrait être l’un des suivants:
donc cela doit être une chaîne de langue séparée.
Alors, comment puis-je changer la chaîne pour prendre en charge une autre langue sans utiliser d'instructions conditionnelles dans l'aide?
Ajouter plus d'abstraction.
JText::sprintf('COM_MYCOMPONENT_DATETIME_AGO', $num, JText::_('SHOUT_TIME'), JText::_('SHOUT_AGO'));
Langue Anglaise
COM_MYCOMPONENT_DATETIME_AGO="%1$s %2$s %3$s"
Langue allemande
COM_MYCOMPONENT_DATETIME_AGO="%3$s %1$s %2$s"