2012-11-20 34 views
11

मेरे पास सिमफ़ोनी 2 के लिए एफओएस उपयोगकर्ता बंडल का एक कठिन समय ओवरराइटिंग लेबल है।एफओएस उपयोगकर्ता बंडल फॉर्म लेबल्स को ओवरराइट कैसे करें

मैं पहले से ही फॉर्म क्लास को ओवरराइट कर रहा हूं, लेकिन "सेटऑप्शन" जैसे तत्वों के लिए कोई विकल्प नहीं है, केवल गेटर्स।

मैं सिर्फ एक तत्व को हटा सकता हूं और उचित लेबल के साथ इसे फिर से जोड़ सकता हूं लेकिन यह एक ओवरकिल जैसा लगता है। क्या फॉर्म तत्वों पर ओवरराइटिंग विकल्पों का कोई अच्छा तरीका है, या सिर्फ अनुवाद कुंजी, शायद?

उत्तर

30

आपको फॉर्म कक्षाओं को ओवरराइट करने की आवश्यकता नहीं है।

vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/translations/FOSUserBundle.xx.yml फ़ाइलों को app/Resources/translations निर्देशिका (उसी निर्देशिका संरचना और उसी फ़ाइल नाम के साथ) में कॉपी/पेस्ट करें और अपनी सुविधा में अनुवादों को फिर से परिभाषित करें।

संपादित करें: जैसा कि @ मारियो-जॉननाथन द्वारा बताया गया है, अनुवाद ओवरराइडिंग बंडल विरासत का हिस्सा नहीं है। आधिकारिक दस्तावेज के लिए http://symfony.com/doc/current/cookbook/bundles/override.html#translations देखें

+1

बहुत बढ़िया, धन्यवाद भाई! –

+5

दरअसल मुझे इसे काम करने के लिए अपने बंडल डीआईआर के बजाय ऐप/संसाधन/एफओएसयूसर बंडल/अनुवाद में कॉपी करना था, –

+0

हाँ आप सही हैं! – AlterPHP

0

जैसा कि पहले ही कहा था कि आप अपने अनुवाद में फ़ाइलों को रख सकते हैं:
app/Resources/translations

लेकिन अगर आप इसे अपने माता पिता के बंडल (src/MyAppBundle/Resources/translations) में ओवरराइड या किसी अन्य बंडल में, लोड करने के लिए सुनिश्चित करें के बाद आपका बंडल आपके कर्नेल में ओवरराइड बंडल:

public function registerBundles() 
{ 
    $bundles = [ 
     ... 
     new FOS\UserBundle\FOSUserBundle(), 
     new MyAppBundle\MyAppBundle(), 
     ... 
    ]; 
... 
}