Documenti / Laravel
Localizzazione Laravel per Blade, automatizzata
Sposta il testo hardcoded nelle viste Laravel Blade in chiamate __() con traduzioni lang/<locale>.json indicizzate dal testo, in un unico comando o pull request.
Come funziona
Il testo nelle viste Blade diventa {{ __('Hi :name, welcome back', ['name' => $user->name]) }}: stringhe di traduzione JSON di Laravel, indicizzate dal testo stesso, con segnaposto :name.
Direttive come @if dividono le frasi; gli indirizzi email non vengono scambiati per direttive.
Plurali ({{ $n == 1 ? 'item' : 'items' }}, Str::plural('item', $n)) diventano trans_choice(':count item|:count items', $n), le forme di ogni lingua nell'ordine in cui Laravel le sceglie.
Prima e dopo
L'output effettivo del motore per questo file. In un'esecuzione reale, il modello ospitato nomina le chiavi dal contesto.
@extends('layouts.app')
@section('content')
<h1>Hi {{ $user->name }}, welcome back</h1>
<input placeholder="Search products">
@endsection@extends('layouts.app')
@section('content')
<h1>{{ __('Hi :name, welcome back', ['name' => $user->name]) }}</h1>
<input placeholder="{{ __('Search products') }}">
@endsection{
"Hi :name, welcome back": "Hi :name, welcome back",
"Search products": "Search products"
}Cosa aggiunge la configurazione
La prima esecuzione imposta Stringhe di traduzione di Laravel se il progetto non lo ha ancora:
lang/<locale>.jsonper ogni lingua- Un middleware
SetLocalenel gruppo web:?locale=, poi un cookielang, quindi Accept-Language
Eseguilo
La CLI richiede Node.js 22 o versioni successive, nient'altro: npx lo esegue senza aggiungere un package.json al progetto. Non hai Node sulla tua macchina? La GitHub Action qui sotto lo esegue per te.
npx localize-dev login
# Preview, then write the changes
npx localize-dev run --dry-run -l es,fr,de
npx localize-dev run -l es,fr,de
# Or open a pull request instead
npx localize-dev pr -l es,fr,deOppure aggiungi la GitHub Action e ottieni una pull request a ogni push. Provalo prima sul tuo codice nel playground.