Internationalization è un termine informatico che indica il processo di design di un software atto a renderlo adattabile a linguaggi e regioni differenti. Internationalization può essere abbreviato con la sigla ‘i18n’. Per approfondire vedi en.wikipedia.org/wiki/Internationalization_and_localization.

Symfony ha dei componenti studiati apposta per la traduzione dei testi utilizzando delle traduzioni pre-impostate.

Translator Service – PHP array

1. Creiamo il seguente Controller in src/AppBundle/Controller/Traduttore.php


<?php

// src/AppBundle/Controller/Traduttore.php
namespace AppBundle\Controller;

use Symfony\Component\HttpFoundation\Response;// namespace per response()
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;// NECESSARIO per utilizzare @Route

use Symfony\Component\Translation\Translator; // per Translator()
use Symfony\Component\Translation\Loader\ArrayLoader; // per ArrayLoader()

class Traduttore {
    
    /**
    * @Route("/traduci")
    */
    public function translationAction()
   {
        $translator = new Translator('fr_FR'); // istanzia la classe Translator di Symfony
        $translator->addLoader('array', new ArrayLoader()); // crea l'array con le traduzioni
        $translator->addResource('array', array(
                                               'Symfony is great!' => 'J\'aime Symfony!',
                                               ), 'fr_FR'); // francese

        //                  ->traduci recuperando i dati array chiave-=valore
        var_dump($translator->trans('Symfony is great!'));// renderizza J'aime Symfony
   
    return new Response('FINE TRADUZIONE');
   }
    
}// END class

Puntare il browser su http://localhost/symfonytest/first_test_symfony/web/traduci

Renderizza:

C:\wamp64\www\symfonytest\first_test_symfony\src\AppBundle\Controller\Traduttore.php:25:string ‘J’aime Symfony!’ (length=15)
FINE TRADUZIONE

Il mio sito ufficiale:
lucedigitale.com

Bibliografia:
symfony.com/doc/current/translation.html