Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Internazionalizzazione in PHP: creare applicazioni multilingua

Come gestire traduzioni, formattazioni e selezione della lingua per applicazioni web PHP con supporto multilingua.
Come gestire traduzioni, formattazioni e selezione della lingua per applicazioni web PHP con supporto multilingua.
Link copiato negli appunti

Anche in PHP, l'internazionalizzazione (i18n) è un processo di progettazione e sviluppo di un'applicazione in modo che possa essere facilmente adattata a diverse lingue e culture. Quando si sviluppano applicazioni web, l'internazionalizzazione diventa fondamentale per offrire un'esperienza utente globale e inclusiva, che rispetti le diverse lingue, formati di data, valute e altre preferenze culturali.

In questo articolo scopriremo come implementare l'internazionalizzazione in PHP per creare applicazioni multilingua. Vedremo come gestire la traduzione dei testi, come organizzare il codice e come gestire le variabili di lingua in modo efficiente.

Cos'è l'Internazionalizzazione (i18n)?

L'internazionalizzazione è il processo che consente ad un'applicazione di supportare facilmente diverse lingue e culture senza dover riscrivere il codice. Una volta che un'applicazione è internazionalizzata, è possibile localizzarla per diverse lingue, ad esempio adattando i testi, i formati numerici, i fusi orari e altro ancora.

La localizzazione (l10n) è il passo successivo all'internazionalizzazione che riguarda l'effettiva traduzione e l'adattamento dell'applicazione ad un mercato specifico, come la traduzione dei contenuti in una lingua specifica.

Come gestire la traduzione dei testi in PHP

La gestione delle traduzioni in PHP può essere realizzata in diversi modi. Il metodo più comune è utilizzare file di lingua per contenere tutte le traduzioni delle stringhe del sito o dell'applicazione. PHP fornisce diverse funzioni per facilitare l'internazionalizzazione.

Creare file di traduzione

Inizia creando un file per ogni lingua supportata. Ad esempio, potresti creare un file en.php per l'inglese e un file it.php per l'italiano. Questi file conterranno tutte le stringhe tradotte per la tua applicazione.

Un esempio di file en.php potrebbe essere il seguente:

return [ 'welcome' => 'Welcome to our website!',<br ?--> 'login' => 'Login',
'signup' => 'Sign Up',
];

Un esempio di file it.php

return [ 'welcome' => 'Benvenuto nel nostro sito web!',<br ?--> 'login' => 'Accedi',
'signup' => 'Registrati',
];

Questi file restituiscono un array associativo dove la chiave è la stringa originale e il valore è la traduzione.

Caricare il file di traduzione

Ora che hai creato i tuoi file di traduzione devi caricarli dinamicamente in base alla lingua dell'utente. Puoi fare questo utilizzando una funzione PHP che determina la lingua desiderata e carica il file di traduzione appropriato.

Ecco il codice per caricare il file di lingua:

// Determina la lingua dell'utente (può essere basata su un parametro URL o su una variabile di sessione)
$language = isset($_GET['lang']) ? $_GET['lang'] : 'en';
// Carica il file di traduzione
$translations = include("languages/{$language}.php");

// Funzione per tradurre le stringhe
function __($key) {
global $translations;
return isset($translations[$key]) ? $translations[$key] : $key;
}

In questo esempio, la lingua dell'utente viene determinata tramite un parametro lang

Usare le traduzioni nell'applicazione

Una volta che il file di traduzione è caricato, puoi utilizzare __() per recuperare le stringhe tradotte in tutta l'applicazione.

<h1><?php echo __('welcome'); ?></h1>
<a href="login.php"><?php echo __('login'); ?></a>
<a href="signup.php"><?php echo __('signup'); ?></a>

Questo approccio consente di scrivere il codice una sola volta e di gestire facilmente la traduzione in diverse lingue. Ogni volta che l'utente cambia lingua, l'applicazione carica il file di traduzione appropriato e mostra le stringhe tradotte.

Gestire i formati locali con PHP

Oltre alla traduzione dei testi, l'internazionalizzazione implica anche la gestione di variabili come la formattazione delle date, dei numeri, delle valute e non solo. In PHP, puoi utilizzare le localizzazioni per gestire questi aspetti.

Formattazione delle date

PHP fornisce la funzione setlocale() per impostare la localizzazione per date, numeri e altri aspetti culturali. Una volta impostato, puoi usare strftime() per formattare correttamente le date. Di seguito un esempio di formattazione della data:

setlocale(LC_TIME, 'it_IT'); // Imposta la lingua italiana per le date
echo strftime('%A %d %B %Y'); // Visualizza la data in formato locale

Questo restituirà una data come "venerdì 08 marzo 2025", formattata secondo la lingua e la cultura italiana.

Formattazione dei numeri e delle valute

Allo stesso modo, PHP offre il supporto per la formattazione dei numeri e delle valute attraverso la funzione number_format() e money_format().

$amount = 1234.56;
echo number_format($amount, 2, ',', '.'); // Visualizza "1.234,56" in formato italiano

Per una gestione più avanzata delle valute, potresti utilizzare la libreria NumberFormatter che fa parte dell'extension intl di PHP. Questa libreria supporta molteplici opzioni per la formattazione di numeri, date e valute in base alla lingua.

Creare un sistema di selezione della lingua

Per rendere la tua applicazione multilingua, è necessario consentire agli utenti di selezionare la lingua che preferiscono. Questo può essere fatto tramite un selettore di lingua nell'interfaccia utente.

<form method="get" action="">
    <select name="lang">
        <option value="en" <?php echo ($_GET['lang'] == 'en') ? 'selected' : ''; ?>>English</option>
        <option value="it" <?php echo ($_GET['lang'] == 'it') ? 'selected' : ''; ?>>Italiano</option>
    </select>
    <button type="submit">Change Language</button>
</form>

Quando l'utente seleziona una lingua, la pagina si ricarica e il contenuto viene mostrato nella lingua selezionata.

Considerazioni finali sull'internazionalizzazione con PHP

L'internazionalizzazione in PHP può sembrare un compito arduo ma con le giuste tecniche e gli strumenti adeguati del linguaggio, puoi creare applicazioni che supportano facilmente più lingue e culture. La gestione delle traduzioni tramite file di lingua, la formattazione corretta di date e numeri e la creazione di un sistema di selezione della lingua sono passaggi fondamentali per offrire un'esperienza utente globale.

Un'applicazione multilingua non solo amplia il tuo pubblico ma dimostra anche un impegno per l'inclusività e l'accessibilità, offrendo agli utenti un'esperienza su misura per le loro preferenze linguistiche e culturali.

Ti consigliamo anche