2015-09-09 13 views
18

Używam silnika szablonowego typu laravel (5.1) z funkcją lokalizacji.Jak sformatować pierwszą literę w Bladerze Laravel

Jest plik językowy messages.php w folderze /resources/lang/en/:

return [ 
    'welcome' => 'welcome', 

W moim szablonu ostrza powitanie wiadomość nazywa się metodą trans:

{{ trans('messages.welcome') }} 

W niektórych przypadkach trzeba pokazać tę samą wiadomość, ale z wielką literą ("Witamy"). Nie chcę używać zduplikowanych rekordów w pliku tłumaczenia.

Jak mogę się do tego zbliżyć?

Odpowiedz

45

używać PHP za rodzimy ucfirst funkcja:

{{ ucfirst(trans('messages.welcome')) }} 
+0

też użyć 'ucwords()' jeśli masz łańcuch z wielu słów i każde słowo chcesz być kapitalizowane . – orrd

+0

Również jako uwaga, uważam, że nie ma znaczenia, która wersja laravel jest używana, ponieważ ... ucfirst, lcfirst, ucwords, są wszystkie standardowe funkcje pomocnicze php. Najpierw jest lowecase i wszedł na php 5.3+, gdzie jak ucfirst i ucwords było w php 5.0 wierzę. – Birdy

+1

Niestety, nie jest to rozwiązanie wielobajtowe. Można użyć mb_convert_case ($ x, MB_CASE_TITLE, 'UTF-8') lub CSS w następujący sposób: .my-class: first-letter {text-transform: capitalize; } – SimZal

0

Dodaj dyrektywę ostrza do aplikacji/Dostawcy/boot AppServiceProvider za() funkcja:

public function boot() { 

    Blade::directive('lang_u', function ($s) { 
     return "<?php echo ucfirst(trans($s)); ?>"; 
    }); 

} 

ten sposób można użyć następujących w swoim ostrzem pliki:

@lang_u('messages.welcome') 

, które generują: Witamy

 

Jesteś @lang_u ('messages.welcome') :)

+0

Uważaj na to, ponieważ twoje dane wyjściowe nie zostaną usunięte, spowoduje to, że będziesz podatny na XSS. – Maantje

+0

@Maantje dzięki, ale tylko w niektórych szczególnych przypadkach użycia. Również dyrektywa dyrektyw @ lang nie ucieka; w ten sposób możesz używać html w swoich plikach językowych. Dyrektywa jest zwykle używana do pobierania tekstu z plików języka statycznego, więc nie stanowi to zagrożenia. Jeśli chcesz wyświetlać dane wygenerowane przez użytkownika, musisz oczywiście uciec. – Pim

Powiązane problemy