2011-11-24 2 views
1

내 질문에 제목이 있습니다. 오른쪽에서 왼쪽 방향 텍스트 방향에 대한 더 나은 솔루션 구현을 도와 줄 수 있습니까?Symfony2를 사용하여 오른쪽에서 왼쪽 방향의 텍스트 방향을 쉽게 구현하는 방법

+0

"로캘에 따라 좋은 CSS를로드하는 방법"에 대한 질문은 무엇입니까? 잠시 동안, "문제 해결을 도와 줄 수 있습니까?" – greg0ire

+0

내 영어로 죄송합니다. CSS 및 나뭇 가지 템플릿이있는 페이지에 대해 rtl을 만드는 방법을 알고 있기 때문에이 경우에는 CSS가 필요하지 않습니다. 템플릿에서 rtl 플래그를 확인하고 dir = "rtl"을 추가하는 것은 매우 쉽습니다. 하지만 symfony2에 rtl 플래그를 저장할 수 있습니까? 로케일이있는 매개 변수? – lisachenko

답변

0

예를 들어, 당신은 그래서,이 갈 방법 중 하나입니다이

<?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]; 
     } 
    } 

같은 것을 만들 수 있습니다. 이렇게하면 모든 언어 데이터를 한 곳에서 가져올 수 있으므로 getLanguageURL을 호출하여 yoururl/en/yourroute에 쉽게 액세스 할 수 있으며 동일한 Maner에서 적절한 _local로 컨트롤러의 getLanguageRTL을 호출하고 twig에 전달할 수 있습니다. R2L true이면 dir = rtl로 할 수 있습니다.

twig에서 getLanguageRTL을 호출하기 위해 나뭇 가지 확장을 만들 수도 있지만 컨트롤러가 모든 "더티 작품"을 수행 할 장소이기 때문에 왜 귀찮은가.

감사합니다.

관련 문제