Taka mnie myśl naszła - walidacja w laravelu i trzymanie komunikatu błędach w katalogu walidacji czyli ../lang/en
. Czemu ktoś się uparł, żeby komunikaty o błędach trzymać w tym katalogu, a nie bezpośrednio w kodzie? Przecież normalne text czyli komunikaty typu "menu", "zapisz plik" są w widoku?
Druga sprawa to czy jak ktoś chce trzymać zwykłe komunikaty "menu", "zapisz plik" w walidacji to też się tak da bo wtedy łatwiej dla aplikacji gdzie chcemy żeby była np po angielksu i po polsku.
Nie kumam; czyli w sumie o co chodzi, bo nie rozumiem?
No chłopie chodzi o to, że w laravelu sa używane paginacje i komunikaty o błędach są przechowywane w ../lang/en ale pozostały tekst jest przechowywany w html, ale czemu wszystkiego nie przechowywać w../lang/en ?
tomixtomi0001 napisał(a):
No chłopie chodzi o to, że w laravelu sa używane paginacje i komunikaty o błędach są przechowywane w ../lang/en ale pozostały tekst jest przechowywany w html, ale czemu wszystkiego nie przechowywać w../lang/en ?
No właśnie powinno wszystko być przechowywane w lang/en
;|
Błędnie zakładasz, że lang/en
to "katalog walidacji".
A ja się zpaytam o szczegóły bo może o innych komunikatach mówimy.
Przeczytaj jeszcze raz dokumentację:
https://laravel.com/docs/9.x/localization
Jak ją przeczytasz to okaże się, że te tłumaczenia do zwykłych widoków w Blade też należy trzymać w katalogu lang/
i masz do tego funkcję pomocniczą, która robi translacje __()
w starszych chyba było trans()
Ale może o innych komunikatach mówimy. Są jeszcze błędy powiązane z HTTP np. 404 500 i tam nie warto stosować translacji albo robić to w ograniczony sposób bo np. probelm z odczytem translacji może wywalić apkę. Przynajmniej takie zapętlenie można było zrobić w starszych wersjach.
Wszystko powinno być w lang chyba że zakładasz na 100%, że strona będzie zawsze w jednym języku lub na potrzeby mvp ma być szybko więc olewasz translacje ale liczysz sie że potem trzeba będzie to przerobić jeśli projekt wypali.
@tomixtomi0001: Nie musisz trzymac komunikatow w pliku lang/en.php mozesz wszystkie komuniakty o bledach dac bezposrednio w kontrolerze w walicadji
$request->validate([
'name' => 'required',
],
[ 'name.required' => 'Pole :attribute jest wymagane.']);
albo w pplikach Request
jesli takich uzywasz
public function rules()
{
return [
'your_field' => 'required|string',
];
}
public function messages()
{
return [
'your_field.required' => 'Pole wymagane',
];
}
Mozesz tez zalozyc inny plik i korzystac z niego. ale jest zasada taka ze jesli masz strone w jezyku angielskim i chcesz tlumaczyc na jezyk polski to dajesz katalog LANG i ktos ci tlumaczy na inny jezyk i masz bardzo latwo ogarniete inne jezyki. dlatego warto trzymac to wlasnie tam, zamiast szukac pozniej w kontrlerach czy requestach