2015-09-09 23 views
18

Uso il motore di template blade laravel (5.1) con la funzione di localizzazione.Come scrivere in maiuscolo la prima lettera in Laravel Blade

C'è un file di lingua messages.php all'interno della cartella /resources/lang/en/:

return [ 
    'welcome' => 'welcome', 

Nel mio modello di lama il messaggio di benvenuto è chiamato con il metodo trans:

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

In alcuni casi ho bisogno di mostrare lo stesso messaggio ma con la prima lettera maiuscola ("Benvenuto"). Non voglio usare record duplicati nel file di traduzione.

Come posso avvicinarmi a questo? nativo ucfirst funzione

risposta

45

Utilizzo di PHP:

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

Oppure utilizzare 'ucwords()' se si dispone di una stringa con più parole e si desidera che ogni parola per essere capitalizzati . – orrd

+0

Anche come nota a margine, credo che non importi quale versione di laravel sia usata perché .. ucfirst, lcfirst, ucwords, sono tutte le funzioni standard di php helper. lcfirst è in primo luogo lowecase ed è entrato in php 5.3+ dove ucfirst e ucwords erano in PHP 5.0 credo. – Birdy

+1

Purtroppo, questa non è una soluzione multibyte .. puoi usare mb_convert_case ($ x, MB_CASE_TITLE, 'UTF-8') o CSS come questo: .my-class: first-letter {text-transform: capitalize; } – SimZal

0

Aggiungi una direttiva lama per l'applicazione/Provider/boot di AppServiceProvider() Funzione:

public function boot() { 

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

} 

In questo modo è possibile utilizzare il seguente nella vostra lama file:

@lang_u('messages.welcome') 

quali uscite: Benvenuto

 

Sei @lang_u ('messages.welcome') :)

+0

Attenzione con questo come il tuo output non sarà sfuggito questo ti renderà vulnerabile a XSS. – Maantje

+0

@Maantje ringrazia, ma solo in alcuni casi d'uso specifici. Anche la direttiva lama @ lang non sfugge; in questo modo, puoi usare html nei tuoi file di lingua. La direttiva viene in genere utilizzata per recuperare il testo da file di linguaggio statici, quindi non è un pericolo. Se vuoi mostrare l'input generato dall'utente, dovresti sfuggirlo ovviamente. – Pim

Problemi correlati