2013-04-09 5 views
5

में बहु-किरायेदार अनुवादों को कैसे कार्यान्वित कर सकता हूं, मैं एक बहु-किरायेदार सक्षम सिम्फनी 2 समाधान विकसित कर रहा हूं और सोच रहा था कि प्रत्येक किरायेदार के लिए अलग-अलग अनुवाद फ़ाइलों का उपयोग करने का कोई तरीका था, क्योंकि वर्तमान में डिफ़ॉल्ट अनुवाद फ़ाइलों में उदाहरण शामिल है। प्रारंभिक किरायेदार की कंपनी का नाम, आदिमैं सिम्फनी 2

मैं Liip थीम बंडल (https://github.com/liip/LiipThemeBundle) शीर्ष पर अपने स्वयं के डिजाइन लेयरिंग, किरायेदारों हमारे codebase उपयोग करने के लिए अनुमति देने के लिए उपयोग कर रहा हूँ, लेकिन एक सरल और स्केलेबल रास्ता बाहर काम नहीं कर सकता अनुमति देने के लिए के लिए संदर्भ उन्हें अपनी अनुवाद फाइलों का उपयोग करने के लिए।

इस बारे में थीम बंडल गिट रेपो पर बात थी, लेकिन मुझे विश्वास नहीं है कि कुछ भी लागू किया गया था (https://github.com/liip/LiipThemeBundle/issues/12)। आदर्श रूप से मैं उस धागे में सुझाई गई निर्देशिका संरचना का पालन करना चाहता हूं, उदा।

root 
    - app 
    - Resources 
     - themes 
     - <theme name> 
      - public 
      - translations (this would be new) 
      - views 

इस रूप में हमारे विषयों जा रहा है आत्म निहित Git submodules कि एक किरायेदार खुद को बनाए रख सकते हैं की प्रथा जारी रखने के लिए अनुमति होगी।

+0

जैसा चाहें करना मुझे नहीं पता लेकिन आपके मामले में, आप [संदेश डोमेन] का उपयोग नहीं कर सकते (http://symfony.com/doc/current/book/translation.html#using-message- डोमेन) इसके बजाए? – cheesemacfly

+0

लेकिन उस विधि का उपयोग करके प्रत्येक किरायेदार को हमें अपनी फाइल के साथ आपूर्ति करनी होगी, हमें विशिष्टता को नाम-वार सुनिश्चित करना होगा, और हमें इसे हमारी साइट के ऐप/संसाधन/अनुवाद निर्देशिका में जोड़ना होगा। इसके अलावा, उसी टेम्पलेट फ़ाइलों को रखने के लिए उस विधि के साथ कोई रास्ता नहीं है, लेकिन किरायेदार के आधार पर एक अलग अनुवाद फ़ाइल का उपयोग करें – tanGee

उत्तर

3

मैं उपरोक्त उल्लिखित निर्देशिका संरचना का उपयोग कर समाप्त हुआ, और एक कंसोल कमांड था जो ऐप/संसाधन/अनुवादों में अनुवाद ओवरराइड फ़ाइल को सिंक्रनाइज़ करता था। यह आदेश मेरी तैनाती स्क्रिप्ट के दौरान चलाया गया, और फिर मैंने अपना "ट्रांस" ट्विग फ़ंक्शन बनाया जिसने जांच की कि क्या ओवरराइड फ़ाइल का उपयोग किया जाना चाहिए।

सबसे साफ नहीं है, लेकिन निश्चित रूप से जिस तरह से मैं चाहता था काम करता है।