traductor traducir traduccion shopkins job ingles google from form examples español ejemplos forms symfony internationalization translation choicefield

forms - traduccion - traducir de ingles a español



Traducir opciones de selección en formularios de clase Symfony2 (4)

Busqué por un tiempo para encontrar una respuesta, pero finalmente descubrí cómo Symfony traduce el contenido. La forma más fácil en su caso parece ser simplemente agregar una traducción para "sí" y "no" agregando un archivo de traducción YAML o XLIFF a su aplicación (por ejemplo, la aplicación / Resources / translations / messagess.de.yml) o su paquete . Esto se describe aquí: http://symfony.com/doc/current/book/translation.html

El problema, en mi opinión, es que parece que no puede usar claves de traducción personalizadas. Los chicos de FOSUserBundle resuelven este problema (o uno similar) con "Form Themes" ( http://symfony.com/doc/2.0/cookbook/form/form_customization.html ). Aquí hay dos líneas de código importantes para lograr el uso del identificador de elemento de formulario como clave de traducción:

https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/views/Registration/register_content.html.twig#L1 / https://github.com/FriendsOfSymfony/FOSUserBundle/blob/50ab4d8fdfd324c1e722cb982e685abdc111be0b/Resources/views/form.html.twig#L4

Al agregar un tema de formulario, puede modificar prácticamente todo lo que se incluye en las plantillas; esta parece ser la forma correcta de hacerlo.

(Lo siento, tuve que dividir dos de los enlaces b / c No tengo suficiente reputación para publicar más de dos enlaces. Triste.)

Estoy usando un formulario de clase en Symfony2 Beta3 de la siguiente manera:

namespace Partners/FrontendBundle/Form; use Symfony/Component/Form/AbstractType; use Symfony/Component/Form/FormBuilder; class ConfigForm extends AbstractType { public function buildForm(FormBuilder $builder, array $options) { $builder->add(''no_containers'', ''choice'', array(''choices'' => array(1 => ''yes'', 0 => ''no''))); ...

Quiero traducir las opciones ''sí'' y ''no'', pero no sé cómo usar el traductor aquí.


En Symfony 2.7, utilizando el argumento choice_label , puede especificar el dominio de traducción de esta manera:

''choice_label'' => ''typeName'', ''choice_translation_domain'' => ''messages'',

Sin especificar el dominio, las opciones no se traducen.


La respuesta de CptSadface fue lo que me ayudó a traducir mis elecciones de entidades.

$builder ->add( ''authorizationRoles'', null, [ ''label'' => ''app.user.fields.authorization_roles'', ''multiple'' => true, ''choice_label'' => ''name'', // entity field storing your translation key ''choice_translation_domain'' => ''messages'', ] );


Puede usar los recursos de traducción como de costumbre. Esto funcionó para mí:

$builder->add(''sex'', ''choice'', array( ''choices'' => array( 1 => ''profile.show.sex.male'', 2 => ''profile.show.sex.female'', ), ''required'' => false, ''label'' => ''profile.show.sex.label'', ''translation_domain'' => ''AcmeUserBundle'' ));

Y luego agregue sus traducciones al directorio Resources-> translations de su paquete.

Actualización desde @CptSadface:

En Symfony 2.7 , utilizando el argumento choice_label, puede especificar el dominio de traducción de esta manera:

''choice_label'' => ''typeName'', ''choice_translation_domain'' => ''messages'',

Sin especificar el dominio, las opciones no se traducen.