Ein kurzes Good-to-know: Fehlermeldungen bei der Validierung können sehr einfach in Symfony2 übersetzt werden.

Beispiel ist eine Model-Klasse Car:

namespace Scandio\TestBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
 * Car Class - brumm brumm
 * @ORM\Entity(repositoryClass="Scandio\TestBundle\Entity\CarRepository")
 * @ORM\Table(name="cars")
 */
class Car
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer", name="id")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
      * The serial number of the car
      * @Assert\NotBlank(message="The name cannot be left blank!")
      * @Assert\Regex(pattern="/^([A-Z0-9-]){1,}$/", message="Please use only capitalized letters and dashes")
      * @ORM\Column(type="string", name="serial", nullable=true)
      * @var string
      */
    private $serial;
    /* Getter and Setter Methods are hidden */
}

Wird nun ein neues Auto per /cars/add hinzugefügt, wird zuerst überprüft ob das Feld “serial” nicht leer und danach ob die Seriennummer nur aus Großbuchstaben und Gedankenstrichen besteht (Bsp: A-BZ-K55).

Um die Fehlermeldungen nun passend in eine andere Sprache zu übersetzen, muss im Projektordner für die Übersetzungen eine neue Datei “validators.{sprache}.yml” angelegt werden. “.yml” ist hier meine Präferenz. XML oder ähnliche von Symfony2 unterstützen Formate können auch gewählt werden. Die Übersetzungen liegen (meist) im Ordner /src/Scandio/TestBundle/Resources/translations.

Im Beispiel würde die Deutsche Übersetzung folgendermaßen aussehen:
`

/src/Scandio/TestBundle/Resources/translations/validators.de_DE.yml

‘Please use only capitalized Letters and Dashes’: ‘Bitte nur Großbuchstaben und Gedankenstriche verwenden’ `

Das wars auch schon. Ein Grund mehr Symfony2 einzusetzen!