2014-04-10 5 views
11

का उपयोग कर मैं इस तरह एक अनुवाद YML फ़ाइल है टहनी टेम्पलेट में concatenated स्ट्रिंग अनुवाद करने का तरीका:Symfony2 अनुवादक

tag: 
    myfirsttag: Tag number one 
    secondtag: Tag number two 
    .... 

और टहनी टेम्पलेट

तरह
<select name="tag" required="required"> 
     {% for tag in tag_list %} 
      <option value="{{ tag }}">{{ "tag." ~ tag | trans(domain='mydomain') }}</option> 
     {% endfor %} 
    </select> 

तो यहाँ समस्या है। चयन में आइटम "tag.myfirsttag" जैसे अनुवादित नहीं हैं, अनुवादित नहीं हैं। यदि मैं "tag." ~ tag को "tag.myfirsttag" जैसे हार्डकोडेड स्ट्रिंग के साथ प्रतिस्थापित करता हूं तो यह अच्छी तरह से काम करता है। तो जाहिर है कि यह concatenation से संबंधित है लेकिन आधिकारिक दस्तावेज़ इसके बारे में कुछ भी नहीं कहते हैं।

अधिक स्पष्ट है और सरल

मैं

{{ "hello.world" | trans(domain='mydomain') }} 

अनुवाद कर सकते हैं, लेकिन सही अनुवाद नहीं कर सकता

{{ "hello." ~ "world" | trans(domain='mydomain') }} 

उत्तर

28

समाधान के रूप में वर्णित here कोष्ठक में स्ट्रिंग डाल करने के लिए है:

काम करता है :

{{ 'hello.world' | trans }} 

काम नहीं करता:

{{ 'hello.' ~ 'world' | trans }} 

काम करता है:

{{ ('hello.' ~ 'world') | trans }} 
+0

बिल्कुल वही जो मैं खोज रहा था। धन्यवाद! – Andrew

0

यह एक साहचर्य सरणी है? तो फिर तुम कुंजी पर पाशन किया जाना चाहिए => मान युग्म

<select name="tag" required="required"> 
    {% for key,tag in tag_list %} 
     <option value="{{ key }}">{{ tag | trans(domain='mydomain') }}</option> 
    {% endfor %} 
</select> 

या है अपने सरणी गहरा:

<select name="tag" required="required"> 
    {% for tag in tag_list %} 
     {% for key,value in tag %} 
     <option value="{{ key }}">{{ value | trans(domain='mydomain') }}</option> 
     {% endfor %} 
    {% endfor %} 
</select> 
+0

नहीं है, यह क्या मैं सच की तलाश में नहीं है। मुझे सरणी या सरणी के मानों के साथ कोई समस्या नहीं है। यह 'ट्रांस' फ़िल्टर के साथ समेकित तारों का उपयोग करने में समस्या है। – Andrew

+0

मैं देखता हूं, लेकिन आपको मूल्य प्राप्त करने के लिए concatenate की आवश्यकता नहीं है ... –

+0

मैंने अपना प्रश्न अधिक स्पष्ट होने के लिए अपडेट किया है। – Andrew

2

अनुवाद करने के लिए संपर्क तार आप इस बात करना है:

{{("कुछ स्ट्रिंग" ~ entity.type ~ "एक और स्ट्रिंग") | ट्रांस}}

लेकिन पैरामीटर की तरह अनुवाद करने के लिए स्ट्रिंग लिखने का प्रयास करें: जैसे:

some.funny.string

+0

आपका उत्तर सही है, लेकिन मुझे गतिशील स्ट्रिंग का उपयोग करना पड़ा क्योंकि लेखन के समय मैं भविष्यवाणी नहीं कर सकता कि तारों का अनुवाद किस प्रकार किया जाएगा। मेरे प्रश्न का पहला भाग देखें। – Andrew