Laravel 集体 Formbuilder 标签本地化
Laravel Collective Formbuilder label localization
我刚开始使用 Laravel 集体表格服务 Provider/FormBuilder。
我使用这个自定义组件来呈现带有标签的文本字段。问题是我试图用 __() 函数翻译它的标签,但是 $name 变量在后期从 first_name 转换为 First Name。
<div class="control-group">
{{ Form::label($name, null, ['class' => 'group__label']) }}
{{ Form::text($name, $value, array_merge(['class' => 'control-
group__control'], $attributes)) }}
</div>
我不能简单地这样做:
{{ Form::label(__($name), null, ['class' => 'group__label']) }}
同样,因为它得到 first_name 并随后将其转换为 First Name。我的 nl.json 文件包含 First Name 的翻译,而不是 first_name。
如果我将_() 翻译函数添加到FormBuilder 中label 方法的最后一条规则,那么它就解决了我的问题。但当然,我不想修改供应商代码!
return $this->toHtmlString('<label for="' . $name . '"' . $options . '>' . __($value) . '</label>');
所以。如何解决这个问题?我是否需要以某种方式创建自定义 FormBuilder->label() 方法?
使用trans()
助手:
{{ Form::label(trans($name), null, ['class' => 'group__label']) }}
在 trans()
中使用字段名称可能会在语言更改时产生错误。
你应该使用这样的东西
{{ Form::label('name', trans(''), ['class' => '']) }}
我刚开始使用 Laravel 集体表格服务 Provider/FormBuilder。
我使用这个自定义组件来呈现带有标签的文本字段。问题是我试图用 __() 函数翻译它的标签,但是 $name 变量在后期从 first_name 转换为 First Name。
<div class="control-group">
{{ Form::label($name, null, ['class' => 'group__label']) }}
{{ Form::text($name, $value, array_merge(['class' => 'control-
group__control'], $attributes)) }}
</div>
我不能简单地这样做:
{{ Form::label(__($name), null, ['class' => 'group__label']) }}
同样,因为它得到 first_name 并随后将其转换为 First Name。我的 nl.json 文件包含 First Name 的翻译,而不是 first_name。
如果我将_() 翻译函数添加到FormBuilder 中label 方法的最后一条规则,那么它就解决了我的问题。但当然,我不想修改供应商代码!
return $this->toHtmlString('<label for="' . $name . '"' . $options . '>' . __($value) . '</label>');
所以。如何解决这个问题?我是否需要以某种方式创建自定义 FormBuilder->label() 方法?
使用trans()
助手:
{{ Form::label(trans($name), null, ['class' => 'group__label']) }}
在 trans()
中使用字段名称可能会在语言更改时产生错误。
你应该使用这样的东西
{{ Form::label('name', trans(''), ['class' => '']) }}