Crea un sito Web multilingue in PHP utilizzando Laravel Framework
Vuoi creare un sito web multilingue in PHP? Un sito web multilingue aiuta ad aumentare il pubblico da diverse regioni. In questo articolo, studiamo come costruire un sito Web multilingue in PHP utilizzando Laravel Framework.
Laravel ha una funzionalità integrata di localizzazione. La localizzazione linguistica è il processo di traduzione dei contenuti in diverse lingue. Utilizzando questa funzionalità integrata di Laravel, possiamo aggiungere il supporto per più lingue al sito Web di Laravel.
In Laravel, puoi facilmente recuperare stringhe in varie lingue, attraverso le quali puoi dare supporto a più lingue nell’applicazione.
Ci sono 2 modi in cui puoi definire le stringhe di traduzione in Laravel: usando i tasti brevi e usando le stringhe di traduzione come chiavi. Diamo un’occhiata uno per uno.
Traduzione di Laravel utilizzando i tasti di scelta rapida
Per iniziare, dovresti prima conoscere le strutture di directory utilizzate per la traduzione in Laravel.
Supponiamo che tu debba aggiungere il supporto per la lingua "tedesca". Quindi, crea una directory ‘de’ nella cartella ‘resources/lang’.
Si consiglia di utilizzare il nome della cartella in base al territorio in base ai valori ISO. È possibile ottenere l’elenco dei codici per le lingue qui.
Crea un file messages.php
nella cartella "de". Questo file contiene un array di stringhe con chiave. Di seguito è riportato l’esempio in cui stiamo utilizzando la traduzione tedesca per la parola inglese "benvenuto".
<?php
return [
'welcome' => 'Herzlich willkommen',
];
Qui ‘benvenuto’ è una chiave definita dall’utente. Questa chiave verrà utilizzata per recuperare le stringhe di traduzione in lingua tedesca. Puoi aggiungere tutte le chiavi in questo file. Durante l’aggiunta di chiavi, è necessario utilizzare chiavi univoche nell’array. Le chiavi duplicate comporteranno una traduzione errata.
Il processo di cui sopra è facile se il tuo sito web non ha molti contenuti. Tuttavia, se il tuo sito Web è piuttosto ricco di contenuti, sarà difficile gestire le chiavi univoche. In questi casi, scegli la seconda opzione di passare le stringhe di traduzione come chiavi.
Utilizzo di stringhe di traduzione come chiavi
In questo approccio, non è necessario passare una chiave univoca. Quello che devi fare è creare un file de.json
nella directory ‘resources/lang’. Successivamente, in questo file JSON, passa la stringa di traduzione come chiavi.
Ad esempio, vuoi una traduzione tedesca della frase inglese "Come stai?" quindi nel de.json
file aggiungi la coppia sottostante.
{
"How are you?": "Wie geht es dir?"
}
La chiave della stringa di traduzione dovrebbe essere esattamente ciò per cui vuoi tradurre. Questo sarà molto più semplice poiché nel codice devi passare direttamente una stringa di traduzione.
Imposta la lingua per il sito web di Laravel
Quando installiamo Laravel, la lingua predefinita è "en". Per cambiare la lingua predefinita, apri il config/app.php
file. Trova la chiave "locale" e imposta il codice della lingua. Nel nostro caso sarà 'locale' => 'de'
.
In alternativa, è possibile impostare il runtime della lingua utilizzando il setLocale
metodo di App
facciata. Nel codice seguente, ho impostato la lingua nel costruttore.
use App;
public function __construct() {
App::setLocale('de');
}
Ottieni stringhe di traduzione e sostituiscile
Per ottenere il testo tradotto dai file di lingua, Laravel ha fornito un metodo di supporto ”. Nel codice seguente sto recuperando le stringhe di traduzione da entrambi messages.php
e de.json
nel file blade.
{{ __('messages.welcome') }} //Output, Herzlich willkommen
{{ __('How are you?') }} //Output, Wie geht es dir?
Nel controller puoi ottenere la stringa di traduzione usando la echo
funzione.
echo __('messages.welcome');
echo __('How are you?');
Segnaposto nelle stringhe di traduzione
Laravel esplora anche le funzionalità di traduzione in cui è possibile passare i segnaposto nelle stringhe di traduzione.
'welcome' => 'Welcome, :name',
o in de.josn
archivio,
{
"How are you?": "Wie geht es dir, :name?"
}
Per sostituire i segnaposto nell’applicazione dobbiamo scrivere il codice come segue.
{{ __('messages.welcome', ['name' => 'John']) }}
{{ __('How are you?', ['name' => 'John']) }}
Se scriviamo un segnaposto come ‘:NAME’ l’output sarebbe ‘JOHN’ e per l’output di ‘:Name’ è ‘John’.
Spero che tu capisca come creare un sito Web multilingue in PHP utilizzando il framework Laravel. Per favore condividi i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.
articoli Correlati
- Una guida per caricare e comprimere immagini in Laravel
- Come installare e utilizzare CKEditor in Laravel
- Come usare Laravel Tinker