2013-04-03 14 views
7

Tworzymy aplikację w Symfony2, która jest zlokalizowana w języku holenderskim i angielskim. Teraz wiem, jak customize the Symfony error pages, ale nie mogę znaleźć tłumaczenia stron z błędami w dowolnym miejscu. Próbowałem użyć filtru trans w szablonach błędów, ale wydaje się, że nie używa on mojego pliku tłumaczeń.Zlokalizowane strony błędów w Symfony2

Również nie mogę znaleźć żadnej opcji, aby utworzyć wiele stron błędów, po jednej dla każdego języka i zlokalizować je.

Czy ktoś wie, czy jest to w ogóle możliwe, mogę sobie wyobrazić, że jest to trudne do zrealizowania, ponieważ błąd może zostać zgłoszony z powodu błędów w tłumaczeniu. Ale jeśli to jest, chciałbym podpowiedź lub link, jak to zrobić poprawnie.

+0

Czy tłumaczenie ciągów znaków (za pomocą filtru trans) działa w innych szablonach? – gatisl

+2

Cóż, muszę powiedzieć, że tłumaczenie wiadomości w szablonie wyjątków nie ma dla mnie większego sensu, ponieważ wyjątek mógł zostać zgłoszony w dowolnym miejscu cyklu przetwarzania żądania. Ta strona nie powinna być częścią normalnego przepływu pracy, ponieważ stanowi błąd w przetwarzaniu żądań i zwykle użytkownik końcowy nie powinien jej widzieć. – gatisl

+1

@gatisl Myślę, że ma to sens, ponieważ 404 błąd mógł zostać zauważony przez użytkownika, gdy istnieje zewnętrzny link, który jest nieprawidłowy. To całkowicie poza naszą kontrolą. Nawet gdy pojawi się błąd 500, chcę, aby użytkownik mógł zrozumieć, co się dzieje. Nie sądzę, że byłbyś bardzo zadowolony z witryny prezentującej chiński błąd 404 lub 500. –

Odpowiedz

6

Możesz spróbować użyć zmiennych globalnych (app.request.locale lub app.session.locale przed Symfony 2.1), które są dostępne w szablonach.

{% if app.request.locale == 'nl' %} 
    some error message 
{% else %} 
    error message in other language 
{% endif %} 
Powiązane problemy