Как я могу легко реализовать направление текста справа налево с Symfony2 - PullRequest
1 голос
/ 24 ноября 2011

Мой вопрос в заголовке.Можете ли вы помочь мне реализовать лучшее решение для направления текста справа налево.

1 Ответ

0 голосов
/ 08 июля 2013

Например, вы можете сделать что-то вроде этого

<?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 из ветки, но поскольку контроллер - это место для выполнения всех «грязных работ», зачем беспокоиться.

С наилучшими пожеланиями

...