How can Symfony's translation and expression language components be utilized to improve the handling of multilingual content in PHP applications?

To improve the handling of multilingual content in PHP applications, Symfony's translation component can be used to manage translations for different languages. The expression language component can be utilized to dynamically generate translated content based on certain conditions or variables.

// Example of using Symfony's translation component to translate content
use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\Loader\ArrayLoader;

// Create a Translator instance
$translator = new Translator('en_US');
$translator->addLoader('array', new ArrayLoader());

// Load translations from an array
$translator->addResource('array', [
    'hello' => 'Hello',
    'goodbye' => 'Goodbye'
], 'en_US');

// Translate content
echo $translator->trans('hello'); // Output: Hello

// Example of using Symfony's expression language component to dynamically generate translated content
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;

// Create an ExpressionLanguage instance
$expressionLanguage = new ExpressionLanguage();

// Define variables for dynamic translation
$language = 'en_US';
$isMorning = true;

// Define an expression to generate translated content based on conditions
$expression = 'isMorning ? "Good morning" : "Good afternoon"';
$translatedContent = $expressionLanguage->evaluate($expression, ['isMorning' => $isMorning]);

// Translate dynamically generated content
echo $translator->trans($translatedContent); // Output: Good morning