2017-06-07 6 views
2

Ich habe gerade angefangen, den Laravel Collective Form Service Provider/FormBuilder zu verwenden.Laravel Collective Formbuilder Label Lokalisierung

Ich benutze diese benutzerdefinierte Komponente zum Rendern eines Textfelds mit Label. Das Problem ist, dass ich versuche, sein Label mit der __() -Funktion zu übersetzen, aber die $ name-Variable wird in einem wirklich späten Stadium von First_name zu Firstname transformiert.

<div class="control-group"> 
    {{ Form::label($name, null, ['class' => 'group__label']) }} 
    {{ Form::text($name, $value, array_merge(['class' => 'control- 
    group__control'], $attributes)) }} 
</div> 

Ich kann nicht einfach tun:

{{ Form::label(__($name), null, ['class' => 'group__label']) }} 

Auch, weil es first_name bekommt und später wandelt sie in Vorname. Meine nl.json-Datei enthält eine Übersetzung für Vorname, nicht Vorname.

Wenn ich die Funktion _() übersetzen, um die letzte Regel der Methode label in FormBuilder ist, dann löst es mein Problem. Aber natürlich möchte ich den Verkäufercode nicht ändern!

return $this->toHtmlString('<label for="' . $name . '"' . $options . '>' . __($value) . '</label>'); 

So. Wie kann ich dieses Problem lösen? Muss ich irgendwie eine benutzerdefinierte FormBuilder-> label() -Methode erstellen?

Antwort

2

Verwenden trans() Helfer:

{{ Form::label(trans($name), null, ['class' => 'group__label']) }} 
+0

Das ist es verwenden. Vielen Dank. Können Sie angeben, wann __() und wann trans() verwendet werden soll? – Floris

-1

Feld Mit Namen mit trans() können Fehler erzeugen, wenn die Sprache geändert.

sollten Sie somthing ähnliche

{{ Form::label('name', trans(''), ['class' => '']) }} 
Verwandte Themen