The many faces of the Symfony translator trans() method

Code
<?php

use Symfony\Component\Translation\Translator;
use 
Symfony\Component\Translation\MessageSelector;
use 
Symfony\Component\Translation\Loader\ArrayLoader;

$translator = new Translator('de_DE');

$translator->addLoader('array', new ArrayLoader());

// German translations
$translator->addResource('array', array(
    
'budgie' => 'Wellensittich',
), 
'de');
// English translations
$translator->addResource('array', array(
    
'budgie' => 'Budgerigar',
), 
'en');
// German translations with domain "badisch"
$translator->addResource('array', array(
    
'budgie' => 'Wellesiddich',
), 
'de''badisch');

echo 
$translator->trans('budgie') . PHP_EOL;
echo 
$translator->trans('budgie', array(), null'en_US') . PHP_EOL;
echo 
$translator->trans('budgie', array(), 'badisch') . PHP_EOL;
Result
Wellensittich
Budgerigar
Wellesiddich