2014-09-23 81 views
0

我試圖將我的應用程序中的某些形式轉換爲symfony形式。我有一個生日值,我希望有空值,空值應分別爲'month''day''year',並根據當地情況顯示這些單詞的翻譯版本。現在我正在用樹枝試試這個。如何在樹枝中添加symfony形式的trans值

{{ form_row(form.birthday, {'empty_value':{ 'year':'title.year'|trans, 'month':'title.month'|trans, 'day':'title.day'|trans }}) }} 

但這並沒有工作,因爲我仍然看到'jan''1''1894'作爲該字段的默認值。

我這是怎麼的形式定義它:

->add(
    'birthday', 
    'birthday', 
    [ 
     'label' => false, 
     'required' => true, 
     'attr' => [ 
     'class' => 'date-fields' 
     ] 
    ] 
) 

有沒有辦法在樹枝做到這一點還是我一定要翻譯傳遞給我的形式和產生在那裏的文本?

+0

骯髒的方式是注入翻譯服務到你的'類型'和翻譯'empty_value'那裏沒有在枝杈 – 2014-09-23 07:03:42

回答

0

你能嘗試一下代碼:

->add(
    'birthday', 
    'birthday', 
    [ 
     'label' => false, 
     'required' => true, 
     'attr' => [ 
      'class' => 'date-fields' 
     ], 
     'empty_value' => 'your_translation_path' // for example title.year 
    ] 
) 

而在你的窗體的方法setDefaultOptions您可以添加默認翻譯領域,這樣的:

/** 
* {@inheritdoc} 
*/ 
public function setDefaultOptions(OptionsResolverInterface $resolver) 
{ 
    $resolver->setDefaults([ 
     'translation_domain' => 'AcmeDemoBundle', 
    ]); 
} 

希望它能幫助。

+0

是的,這基本上是這樣做的方式。我的項目中的翻譯與標準的symfony方式稍有不同,所以我不得不做一些其他的改變,但是這導致我走上了正確的道路。 – 2014-10-03 06:56:33

0

有一個非常簡單的方法來做到這一點。 只是要命名爲messages.en.xliff 翻譯文件在此目錄中

YourProject 
     |___app 
       |___Resources 
         |___translations 
             |___messages.en.xliff 

messages.en.xliff剛加入這一行

 <trans-unit id="Title"> 
      <source>Title</source> 
      <target>標題</target> 
     </trans-unit> 

入住這one.Don't忘記清除緩存 無需添加在形式上轉換。

+0

這是很好的解釋。 – 2014-10-03 20:52:44