Qual è il modo migliore per gestire rappresentazioni di stringa e traduzioni di codici numerici in Symfony2?Tradurre codici di stato numerici in Symfony2 e SonataAdmin
Supponiamo che io sono un soggetto come questo:
<?php
class Message
{
const STATUS_NEW = 0;
const STATUS_SENT = 1;
const STATUS_DELIVERED = 2;
/**
* @var int
*/
private $status = self::STATUS_NEW;
public function getStatus()
{
return $this->status;
}
}
Sul front-end e back-end nel SonataAdmin Io non voglio mostrare codici numerici ma stringhe. E.g "Nuovo", "Inviato" e "Consegnato". Ma voglio anche essere in grado di tradurre queste stringhe (ad esempio in olandese "Nieuw", "Verzonden" e "Afgeleverd").
Quindi ci sono due fasi di conversione: in primo luogo dal codice numerico a una chiave stringa o di traduzione, e poi alla stringa localizzata.
Dove e come faccio a fare al meglio queste conversioni? Sia nel front-end nei miei controller/viste e in un SonataAdmin basato sul supporto?
Stai già definendo quelle stringhe ('Nuovo', 'Inviato' e 'Consegnato') da qualche parte nel tuo codice? O in un database? – cheesemacfly
No, non ancora. Sto cercando il posto migliore per metterli. Penso che le traduzioni saranno le più facili da capire. Ma qual è il miglior posto dove andare da quei codici numerici alle stringhe? –
Sono d'accordo con te sul fatto che la parte di traduzione è facile. Quello che ho fatto, è mettere quelle coppie chiave/valore in un file di configurazione che carico nel database con il pacchetto doctrine fixture e poi tradurle usando l'estensione Translatable dal bundle DoctrineExtension. Ma sicuramente non sono sicuro se sia una buona soluzione o no ... – cheesemacfly