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