Транс внутри form.placeholder Symfony 4 - PullRequest
0 голосов
/ 30 октября 2018

Я перевожу свое приложение на основе значения, определенного в базе данных (не на языке).

Это часть формы:

$builder
        ->add('email', EmailType::class, array( 'required' => 'required', 'attr' => array( 'class' => 'form-control','placeholder' => 'Email')))
        ->add('username', TextType::class, array( 'required' => 'required', 'attr' => array( 'class' => 'form-control', 'autofocus' => 'autofocus','placeholder' => 'Username')))
        ->add('plainPassword', RepeatedType::class, array(
            'type' => PasswordType::class,
            'first_options'  => array('label' => 'Password', 'attr' => array( 'class' => 'form-control repeat', 'placeholder' => 'Password')),
            'second_options' => array('label' => 'Repeat Password', 'attr' => array( 'class' => 'form-control', 'placeholder' => 'Repeat password')),
        ))
        ->add('termsAccepted', CheckboxType::class, array(
            'mapped' => false,
            'constraints' => new IsTrue(),
            'attr' => array('class' => 'pull-left')
    ))
    ;

Эта часть моего шаблона ветки

<h1 class="h3 mb-3 font-weight-normal form-header">{% trans into lang %}Register{% endtrans %}</h1>
{{ form_start(form, { 'attr': {'class': 'form-signin'} }) }}
{{ form_row(form.username, {'label':false}) }}
{{ form_row(form.email, {'label':false}) }}
{{ form_row(form.plainPassword.first, {'label':false}) }}
{{ form_row(form.plainPassword.second, {'label':false}) }}
{{ form_row(form.termsAccepted, {'label':false}) }}
<p class="terms">Check here to indicate that you read and agree the  <a href="{{ path('privacy_policy') }}">Privacy Policy.</a></p>
<button class="btn btn-lg btn-primary btn-block" type="submit">Register</button>
{{ form_end(form) }}

На основании: {% trans в lang%} текст для перевода {% endtrans%}

Если я попытаюсь перевести все поле, сделайте исключение: «только транс может продолжить просто текст».

Есть какой-нибудь трюк, чтобы вставить заполнитель непосредственно в мой шаблон веточки?.

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Хорошей практикой является использование ключей перевода. На Twig это выглядит так:

{{ 'some_bundle.special_controller.its_view.your_trans_key'|trans }}

Чем в messages.en.yml:

some_bundle:
  special_controller:
    its_view:
      your_trans_key: 'This is translation key!'
      other_key: 'And this is another translation key!'
  second_controller:
    and_its_view:
      some_key: 'The Key'

Из. Вы можете сделать ваши ключи структурированными так, как вы хотите.

Изменить: это должно работать, если вы поместите этот длинный ключ в заполнитель формы:

...'placeholder' => 'some_bundle.some_form.plain_password.password')),
...'placeholder' => 'some_bundle.some_form.plain_password.repeat_password')),

Вид Symfony по умолчанию должен переводить этот ключ. Проверьте это.

0 голосов
/ 30 октября 2018

Для динамического контента вы должны использовать вместо этого фильтр трансляции.

{{ message|trans(arguments = [], domain = null, locale = null) }}

Должно быть что-то вроде

{{ textToTranslate | trans([], null, lang) }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...