2015-04-17 2 views
0

Я использую внутреннее расширение перевода в Symfony2, чтобы создать файл message.en.yml с переводами. Хотя большинство элементов записано с отдельным именем, имена полей (или, возможно, свойства объекта, я не уверен), каталогизируются только с их именами. Это затрудняет их обработку.Как формируются метки форм, переведенные в symfony2?

Например, этот образец моего message.en.yml:

  • address.contactdocumentnumber.list: __address.contactdocumentnumber.list

  • address.contactdocumentnumber.add.new: __address .contactdocumentnumber.add.new

  • contactDocumentnumber: __contactDocumentnumber

  • issuingAuthority: __issuingAuthority

  • DocumentType: __documentType

Как вы можете видеть имена полей: contactDocumentnumber, issuingAuthority, DocumentType сохраняются только их имена, где то, что я хочу что-то вроде address.contactdocumentnumber. form.label.issuingAuthority

Как это изменить? И что еще более важно, где находится шаблон для переводов, расположенный в проекте Symfony2?

Я заметил, что когда я меняю ярлык в Form Builder, это проявляется в моей форме. Но когда я запускаю команду «php app/console translate: update --force en MyByndle», имя поля по-прежнему остается таким же, например. __fieldname. Возможно ли, что оно берет имя откуда-то еще, например, как объект?

ответ

0

По умолчанию Symfony угадывает метку, основанную на имени поля. Таким образом, поле с именем some_field получит ярлык Some field. Если вы хотите переопределить это, вы можете передать опцию label с вашей переводимой строкой при создании поля. Например:

+0

Я уже пробовал это, но все же, когда я запускаю «PHP-приложение/консольный перевод: update -force en MyBundle» Я не вижу никаких изменений. –

+0

Ах, извините, похоже, я неправильно понял ваш вопрос. Вы уже пробовали [JMSTranslationBundle] (http://jmsyst.com/bundles/JMSTranslationBundle)? Кажется, что он может извлекать метки из полей формы, построенных с помощью FormBuilder. –

+0

Спасибо. Я проверю комплект, который вы предлагаете. –

Смежные вопросы