Laravel - Localizzazione: Una Guida per Principianti

Ciao, futuri sviluppatori! Oggi ci imbarcheremo in un viaggio emozionante nel mondo della localizzazione di Laravel. Non preoccupatevi se siete nuovi alla programmazione - sarò il vostro guida amichevole, spiegando tutto passo per passo. Alla fine di questo tutorial, sarete in grado di fare in modo che le vostre applicazioni Laravel parlino più lingue! Iniziamo!

Laravel - Localization

Cos'è la Localizzazione?

Prima di immergerci nel codice, capiremo cosa significa localizzazione. Immagina di aver creato un sito web fantastico, ma tutti i tuoi utenti non parlano la stessa lingua. Non sarebbe meraviglioso se il tuo sito potesse automaticamente cambiare lingua in base alle preferenze dell'utente? Ecco esattamente cosa fa la localizzazione!

La localizzazione è il processo di adattare la tua applicazione a diverse lingue e regioni. È come insegnare alla tua app a essere multilingue!

Perché la Localizzazione è Importante?

Permettimi di condividere una breve storia. Alcuni anni fa, uno dei miei studenti ha creato un sito e-commerce straordinario. Era perfetto... tranne che era solo in inglese. Quando ha cercato di espandersi nel mercato di lingua spagnola, si è reso conto che doveva ricostruire quasi tutto! Se avesse usato la localizzazione fin dall'inizio, sarebbe stato molto più facile.

La localizzazione ti aiuta a:

  1. Raggiungere un pubblico globale
  2. Migliorare l'esperienza utente
  3. Aumentare l'engagement e la retention degli utenti

Ora, vediamo come Laravel rende questo processo un gioco da ragazzi!

Configurare la Localizzazione in Laravel

Passo 1: Creare File Linguistici

Prima di tutto, dobbiamo creare file linguistici. Laravel rende questo super facile!

  1. Vai alla directory resources/lang nel tuo progetto Laravel.
  2. Crea una nuova cartella per ogni lingua che vuoi supportare. Ad esempio, en per inglese, es per spagnolo.
  3. In ogni cartella, crea un file PHP chiamato con il nome della funzionalità che stai traducendo. Iniziamo con messages.php.

Ecco come potrebbe apparire la tua struttura di directory:

resources/
lang/
en/
messages.php
es/
messages.php

Ora, aggiungiamo alcune traduzioni a questi file:

// resources/lang/en/messages.php
return [
'welcome' => 'Welcome to our website!',
'goodbye' => 'Goodbye, see you soon!',
];

// resources/lang/es/messages.php
return [
'welcome' => '¡Bienvenido a nuestro sitio web!',
'goodbye' => '¡Adiós, hasta pronto!',
];

Passo 2: Utilizzare le Traduzioni nel Tuo Codice

Ora che abbiamo le nostre traduzioni, utilizziamole nel codice. Laravel offre diversi modi per farlo:

Metodo 1: Utilizzare la Funzione Ausiliaria __()

echo __('messages.welcome');

Questo stamperà "Welcome to our website!" se l'app è impostata su inglese, o "¡Bienvenido a nuestro sitio web!" se è impostata su spagnolo.

Metodo 2: Utilizzare la Funzione Ausiliaria trans()

echo trans('messages.goodbye');

Fa la stessa cosa di __() ma alcuni sviluppatori preferiscono questa sintassi.

Metodo 3: Utilizzare la Direttiva @lang nei Template Blade

Nei tuoi template Blade, puoi utilizzare la direttiva @lang:

<h1>@lang('messages.welcome')</h1>

Questo è particolarmente utile quando stai lavorando con template HTML.

Passo 3: Cambiare la Lingua dell'Applicazione

Ora, come facciamo a dire a Laravel quale lingua utilizzare? Ci sono diversi modi:

Metodo 1: Impostare la Lingua Predefinita

Nel tuo file config/app.php, puoi impostare la lingua predefinita:

'locale' => 'en',

Metodo 2: Cambiare Lingua in Tempo di Esecuzione

Puoi cambiare la lingua dinamicamente nel tuo codice:

App::setLocale('es');

Questo è utile quando vuoi cambiare la lingua in base alle preferenze o alle impostazioni dell'utente.

Metodo 3: Utilizzare Middleware per la Lingua

Per un controllo più avanzato, puoi creare un middleware per impostare la lingua in base a vari fattori. Ecco un esempio semplice:

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\App;

class SetLocale
{
public function handle($request, Closure $next)
{
if ($request->session()->has('locale')) {
App::setLocale($request->session()->get('locale'));
}
return $next($request);
}
}

Poi, 注册这个中间件在你的 app/Http/Kernel.php:

protected $middlewareGroups = [
'web' => [
// ... altri middleware
\App\Http\Middleware\SetLocale::class,
],
];

Tecniche di Localizzazione Avanzate

Pluralizzazione

Laravel può gestire la pluralizzazione per te! Ecco come:

// Nel tuo file linguistico
'apples' => '{0} No apples|{1} One apple|[2,*] :count apples',

// Nel tuo codice
echo trans_choice('apples', 0); // Output: No apples
echo trans_choice('apples', 1); // Output: One apple
echo trans_choice('apples', 5); // Output: 5 apples

Localizzazione con Parametri

Puoi anche utilizzare parametri nelle tue traduzioni:

// Nel tuo file linguistico
'welcome_name' => 'Welcome, :name!',

// Nel tuo codice
echo __('messages.welcome_name', ['name' => 'John']); // Output: Welcome, John!

Conclusione

Congratulations! You've just taken your first steps into the world of Laravel Localization. With these tools at your disposal, you can now create applications that speak to users in their own language, no matter where they are in the world.

Remember, the key to mastering localization (and programming in general) is practice. Try creating a small project and implement localization from the start. You'll be surprised at how quickly it becomes second nature!

Happy coding, and may your apps speak many languages! ??️?

Metodo Descrizione Esempio
__() Funzione ausiliaria per la traduzione __('messages.welcome')
trans() Altra funzione ausiliaria per la traduzione trans('messages.goodbye')
@lang Direttiva Blade per la traduzione @lang('messages.welcome')
App::setLocale() Impostare la lingua dell'applicazione App::setLocale('es')
trans_choice() Traduzione con pluralizzazione trans_choice('apples', 5)

Credits: Image by storyset