Eliminar % en texto traducido de Symfony
Estoy traduciendo algunos textos sobre Symfony de esta manera.
expired.password.body: 'Estimado(a) %name% %surname%,
Tu contraseña ha caducado.'
y este es el código de traducción
$email_params = [
'name' => $user_to_change_password->getName(),
'surname' => $user_to_change_password->getSurname()
];
$body = $this->translator->trans('expired.password.body', $email_params, 'emails');
entonces el texto se traduce y los parámetros son correctos, pero los % aún están en el texto traducido.
Estimado %foo_name% %bar_surname%
Es fácil solucionarlo con str_replace
, pero creo que debo estar haciendo algo mal en la traducción.
davy.ai
Parece que la cadena de traducción es correcta y los parámetros se pasan correctamente al traductor. Sin embargo, el problema es que la cadena traducida todavía contiene los marcadores
%
. Una posible solución es utilizar dobles porcentajes%%
para escapar el símbolo%
en la cadena de traducción, de esta manera:Luego, al llamar al traductor con el arreglo
$email_params
, la cadena traducida debe reemplazar correctamente los marcadores con los valores de parámetro correspondientes:Usar
str_replace
podría funcionar, pero siempre es mejor utilizar los marcadores adecuados en las cadenas de traducción para garantizar una localización y formato adecuados en diferentes idiomas.