我想问你,如何翻译generator.yaml文件中的字段标签。一般来说,如何翻译yaml文件的内容?
例如:
config:
actions: ~
fields:
name:
label: Name
如何让'name'可翻译?
提前Thx&来自波兰的祝福:)
Piotrek
答案 0 :(得分:2)
你真的不需要做任何事情。无论您的标签来自generator.yml还是来自您的ModelForm类,最后您的标签字符串都会通过处理翻译的sfWidgetFormSchemaFormatter :: translate方法。
答案 1 :(得分:0)
你需要听一下form.post_configure事件。我通常在我的项目配置类中有这个,如下所示:
class ProjectConfiguration extends sfProjectConfiguration
{
public function setup()
{
$this->dispatcher->connect('form.post_configure', array($this, 'listenToFormPostConfigure'));
}
/**
* Listens to the command.post_command event.
*
* @param sfEvent An sfEvent instance
* @static
*/
static function listenToFormPostConfigure(sfEvent $event)
{
sfProjectConfiguration::getActive()->loadHelpers('I18N');
$form = $event->getSubject();
$widgetSchema = $form->getWidgetSchema();
foreach ($form->getValidatorSchema()->getFields() as $fieldName => $validator)
{
if (isset($widgetSchema[$fieldName]))
{
$label = $widgetSchema[$fieldName]->getLabel() ? $widgetSchema[$fieldName]->getLabel()
: sfInflector::humanize($fieldName);
$label = __($label);
$asterisk = $validator->getOption('required') ? ' *' : null;
$widgetSchema[$fieldName]->setLabel($label . $asterisk . ' :');
}
}
}
}
这会在所需标签上附加一个星号,并翻译标签。希望它对你也有用。