Foros del Web » Programando para Internet » PHP »

Traduciones en los form

Estas en el tema de Traduciones en los form en el foro de PHP en Foros del Web. Hola comunidad, tengo un problemita que ya llevo unos cuentos días buscando y no logro encontrar la solución por ningun lado. Bueno resulta que tengo ...
  #1 (permalink)  
Antiguo 05/12/2015, 11:07
 
Fecha de Ingreso: febrero-2013
Mensajes: 66
Antigüedad: 6 años, 10 meses
Puntos: 0
Traduciones en los form

Hola comunidad, tengo un problemita que ya llevo unos cuentos días buscando y no logro encontrar la solución por ningun lado.
Bueno resulta que tengo un formlario en symfony2 y dentro un campo con que tiene un label que su valor es una llave para el cataolgo messages.es.xlf. Algo como lo siguiente
Descargar código fuente.

Código:
$builder->add('code', 'text', array(
'label' => 'code.number'
));



y en mi fichero messages.es.xlf tengo algo como esto
Descargar código fuente.

Código:
<trans-unit id="1">
 <source>code.number</source>
<target>Codigo %number%</target>
</trans-unit>




Como pueden observar lo que quiero es poder pasarle desde el formulario un valor a %number% que esta en mi dominio messages.es.
Se que symfony automaticamente intenta traducir todos los campos de los label que estan dentro de un formulario, y los busca en el dominio messages.{locale}. Bueno espero que alguien me pueda ayudar con esto.
saludos
  #2 (permalink)  
Antiguo 06/12/2015, 07:50
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 11 años, 11 meses
Puntos: 32
Respuesta: Traduciones en los form

Échale un vistazo a ésto.

El archivo "messages.es.xlf" tiene que tener los literales del idioma por defecto y su traducción al idioma del fichero. Si tu idioma por defecto es ES, el archivo se deberá llamar "messages.en.xlf" para traducirlo al Inglés.

Código XML:
Ver original
  1. <trans-unit id="1">
  2.     <source>Hola</source>
  3.     <target>Hello</target>
  4. </trans-unit>

Código PHP:
Ver original
  1. /*
  2. * Llamando al método trans del servicio translator a la hora de generar el formulario
  3. * él sólo buscará un fichero con locale que esté activo en ese momento (EN, por ejemplo) y buscará el literal quie le hayas pasado como argumento.
  4. * si lo encuentra lo traduced y si no deja el original.
  5. */
  6. $builder->add('code', 'text', array(
  7. 'label' => $this->get('translator')->trans('Hola');
  8. ));

Etiquetas: form, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:50.