Например, вы можете сделать что-то вроде этого
<?php
namespace You\YourBundle\Constants;
class LanguageConstants
{
const LANGUAGE_EN = 1;
const LANGUAGE_HR = 2;
const LANGUAGE_SR = 3;
const LANGUAGE_BS = 4;
const LANGUAGE_DE = 5;
const LANGUAGE_PT = 6;
const LANGUAGE_AR = 7;
static private $constants = array(
self::LANGUAGE_EN => 'English',
self::LANGUAGE_HR => 'Hrvatski',
self::LANGUAGE_SR => 'Srpski / Српски',
self::LANGUAGE_BS => 'Bosanski / Босански',
self::LANGUAGE_DE => 'Deutsch',
self::LANGUAGE_PT => 'Português',
self::LANGUAGE_AR => 'العربية',
);
static private $constantsURL = array(
self::LANGUAGE_EN => 'en',
self::LANGUAGE_HR => 'hr',
self::LANGUAGE_SR => 'sr',
self::LANGUAGE_BS => 'bs',
self::LANGUAGE_DE => 'de',
self::LANGUAGE_PT => 'pt',
self::LANGUAGE_AR => 'ar',
);
static private $constantsRTL = array(
self::LANGUAGE_EN => false,
self::LANGUAGE_HR => false,
self::LANGUAGE_SR => false,
self::LANGUAGE_BS => false,
self::LANGUAGE_DE => false,
self::LANGUAGE_PT => false,
self::LANGUAGE_AR => true,
);
static public function getLanguageConstants()
{
natsort(self::$constants);
return self::$constants;
}
static public function getLanguageName($const)
{
return self::$constants[$const];
}
static public function getLanguageURL($const)
{
return self::$constantsURL[$const];
}
static public function getLanguageRTL($const)
{
return self::$constantsRTL[$const];
}
}
Итак, это один из способов.Таким образом, вы можете хранить все свои языковые данные в одном месте, вы можете легко получить en в yoururl / en / yourroute, вызвав getLanguageURL, и таким же образом вы можете вызвать getLanguageRTL в вашем контроллере с надлежащим _local и передать ветку, чтобывы могли бы сделать, если R2L true, тогда dir = rtl.
Вы даже можете сделать расширение ветки для вызова getLanguageRTL из ветки, но поскольку контроллер - это место для выполнения всех «грязных работ», зачем беспокоиться.
С наилучшими пожеланиями