我们在字段过滤器中的管理生成器中。最清晰的翻译方式是表单字段下的空标签?
我已经通过自己的 setWidgets 和 BaseFormFilterDoctrine 中的 setWidgets 解决了这个问题,通过翻译它是空的(empty_label)来扩展父方法。
- setWidgets - 翻译表单过滤器中的所有empty_label(用于基本过滤器类)
- setWidget - 为一个过滤器字段翻译empty_label(用于扩展过滤器类)
它有效,但我认为它很讨厌。我正在寻找更干净的东西
我们在字段过滤器中的管理生成器中。最清晰的翻译方式是表单字段下的空标签?
我已经通过自己的 setWidgets 和 BaseFormFilterDoctrine 中的 setWidgets 解决了这个问题,通过翻译它是空的(empty_label)来扩展父方法。
它有效,但我认为它很讨厌。我正在寻找更干净的东西
现在(Symfony 1.4)你可以通过添加来做到这一点
<trans-unit>
<source>is empty</source>
<target>my translation</target>
</trans-unit>
进入messages.xx.xml
你可以这样做:
$translated_text = $this->widgetSchema->getFormFormatter()->translate('String to translate');
为什么你认为它很讨厌?我认为破解 BaseFormFilterDoctrine 类是要走的路。我通常会这样做:
abstract class BaseFormFilterDoctrine extends sfFormFilterDoctrine
{
public function setup()
{
parent::setup();
foreach ($this->widgetSchema->getFields() as $name => $widget) {
if ($widget->getOption('empty_label')) {
$widget->setOption('empty_label', 'my internationalized string');
}
}
}
}