Каков наилучший способ обработки строковых представлений и переводов числовых кодов в Symfony2?Перевести числовые коды состояния в Symfony2 и SonataAdmin
Предположим, у меня есть объект вроде этого:
<?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;
}
}
На переднем конце и во внутреннем интерфейсе SonataAdmin я не хочу, чтобы показать цифровые коды, но строки. Например, «Новое», «Отправлено» и «Поставлено». Но я также хочу уметь переводить эти строки (например, на голландском языке «Nieuw», «Verzonden» и «Afgeleverd»).
Итак, есть два шага преобразования: сначала от числового кода до строки или ключа перевода, а затем в локализованную строку.
Где и как лучше всего делать эти преобразования? Как в передней части моих собственных контроллеров/представлений, так и в поддержке SonataAdmin?
Вы уже определяете эти строки ('New', 'Sent' и 'Delivered') где-то в вашем коде? Или в базе данных? – cheesemacfly
Нет, еще нет. Я ищу лучшее место для их размещения. Я думаю, что переводы будут проще всего выяснить. Но каково лучшее место, чтобы перейти от этих числовых кодов к строкам? –
Я согласен с вами в том, что переводная часть проста. То, что я сделал, помещает эти пары ключ/значение в файл конфигурации, который я загружаю в базу данных с помощью набора инструментов для доктрины, а затем переводит их, используя расширение Translatable из пакета DoctrineExtension. Но определенно не уверен, что это хорошее решение или нет ... – cheesemacfly