2011-08-08 15 views
9

मैं अपने आवेदन के डिफ़ॉल्ट लोकेल को बदलने की कोशिश कर रहा हूं। हालात मैं अब तक की कोशिश की है: app/config/parameters.ini Symfony2 में डिफ़ॉल्ट लोकेल बदलें

  • में 'एट' के लिए

    • सेट intl.default_locale 'et_EE'
    • सेट स्थान के लिए मेरी बंडल के बूट में डिफ़ॉल्ट स्थान बदल दिया है() विधि का वर्णन किया here
    • एक कक्षा लोकेल को कार्यान्वित किया गया है जो StubLocale को बढ़ाता है और 'et_EE' को वापस करने के लिए विधि getDefault() को ओवरराइट करता है।

    यहां कार्यान्वयन है। लोकेल क्लास को ओवरराइट नहीं किया जा रहा है क्योंकि \Locale::getDefault() कॉलिंग इस विधि को निष्पादित नहीं करता है।

    <?php 
    
    use Symfony\Component\Locale\Stub\StubLocale; 
    
    class Locale extends StubLocale 
    { 
        static public function getDefault() 
        { 
         return 'et_EE'; 
        } 
    } 
    

    इन सभी तरीकों वर्णित की कोशिश के बाद, \Locale::getDefault() अभी भी en देता है। उचित लोकेल में फॉर्म विजेट्स जैसे देश या भाषा को प्रस्तुत करने के लिए मुझे et_EE वापस करने की आवश्यकता है।

    मैं यह कैसे करूँगा? बाद में कई स्थानीय लोगों का समर्थन करने में सक्षम होने के नाते भी बहुत अच्छा होगा। धन्यवाद।

  • +0

    \ लोकेल :: getDefault() इस विधि को निष्पादित नहीं करेगा, क्योंकि यह PHP द्वारा प्रदान किया गया है। सिम्फनी द्वारा उपयोग की जाने वाली लोकेल क्लास \ Syalefony \ component \ Locale \ Locale की बजाय \ Locale नहीं है जो \ Locale को विस्तारित करती है। –

    उत्तर

    18

    Symfony 2.0 में:

    # app/config/config.yml 
    framework: 
        session: { default_locale: en } 
    

    Symfony में 2.1+:

    framework: 
        translator:  { fallback: %locale% } 
        ... 
        session: 
        default_locale: %locale% 
        auto_start:  true 
    

    %locale% है:

    # app/config/config.yml 
    framework: 
        default_locale: en 
    
    +0

    कुडोस! मैंने उस जगह को कई बार स्किम किया और चूंकि सत्र था: {default_locale:% locale%} मुझे लगता है कि यह पैरामीटर.ini से मान लेता है। यह काम करता हैं। – gilden

    +9

    यह पुराना है। अब यह फ्रेमवर्क कॉन्फ़िगरेशन की एक सेटिंग है: 'ढांचा: डिफ़ॉल्ट_लोकेल:% लोकेल% ' – ivoba

    6

    Symfony 2.0 में, आप default_locale भी सत्र के लिए सेट कर सकते हैं एक चर, और यह parameters.ini फ़ाइल से हल हो गया है।

    संबंधित मुद्दे