【发布时间】:2017-06-22 10:37:28
【问题描述】:
我的应用程序更喜欢 de 作为 locale 来显示数字,例如 1.234.567,89 而不是 1,234,567.89(或 1234567,89 而不是 1234567.89)。
所以我更改了config.yml中的本地参数:
parameters:
locale: de
此外,我使用 NumberType 来生成我的表单字段:
class MyFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('myNumber', NumberType::class, [
'label' => 'Tax [EURO]',
'required' => false,
'scale' => 2,
'attr' => array(
'min' => 0,
'max' => 9999.99,
'step' => 0.01,
),
]);
}
}
现在 myNumber 的值在生成的 HTML5 输入字段中显示为德语格式的数字,并且该字段既可以工作也不会显示任何数字。如果我将语言环境改回en,一切正常。
IMO html5 输入字段需要填写英文格式的数字。但是我怎样才能设法输出不是德语的数字呢?
总结
使用语言环境de,该字段不 工作。尽管使用德语格式的数字正确填充了 value 属性,但该值未显示在生成的输入字段中:<input type="number" value="1234567,89">
使用语言环境en,该字段有效:<input type="number" value="1234567.89">
有趣的事实:我的浏览器(Firefox 45.9.0 和 Google Chrome v54.0.2840.71,debian/64 位)检测到我计算机的区域设置de,并将数字显示为德语格式即使我将应用程序的语言环境设置为 en(number 类型的输入字段)
添加 lang 属性 <html lang="{{ app.request.locale }}"> 没有帮助。
非常感谢!
【问题讨论】:
标签: php html forms symfony locale