2016-01-25 10 views
16

क्या कोई स्ट्रिंग/स्थानीयकरण के लिए xliff:g को समझा सकता है।एंड्रॉइड xliff का उपयोग कैसे करें: g

मुझे लगता है कि xliff:g को <> चीजों के अंदर कुछ भी अनुवाद करने की आवश्यकता नहीं है, लेकिन मैं उलझन में हूं कि मैं कोड में इसका उपयोग कैसे करूँगा।

<string name="order_quantity">Cantidad: <xliff:g id="quantity" example="2">%d/xliff:g</string> 

मैं अब स्थानीय xliff:g साथ तार काम करने के लिए पाने के लिए कोशिश कर रहा हूँ:

एक उदाहरण मैं मेरे मामले में है अभ्यास स्पेनिश अनुवाद है कि मैं है है। id क्या है और यह क्या करता है? और यह क्या कहता है?

%d और यह क्या करता है? example का बिंदु क्या है? साथ ही, मैं इसे कोड में कैसे कॉल करूंगा, अगर बिल्कुल?

<string name="quant">Quantity: </string> 

जावा में इतनी तरह:

क्यों किसी को सिर्फ निम्न कोड निम्नलिखित xml सम्मिलित नहीं है सकते हैं करने के लिए

getString(R.string.quant) + quantity 

ताकि जिस तरह से यह getString में मात्रा चर concactenates ?

<string name="order_quantity">Cantidad: <xliff:g id="quantity" example="2">%d</xliff:g></string> 

id विशेषता क्या प्रतिस्थापन पैरामीटर का प्रतिनिधित्व करता है की पहचान करने के लिए किया जाता है (आपके मामले में, यह मात्रा का प्रतिनिधित्व करता है): अपने उदाहरण में

उत्तर

24

माइनर टाइपो, वहाँ एक अंतिम टैग होना चाहिए। जैसा कि आपने कहा था, एक नोट, और वास्तव में प्रोग्रामेटिक रूप से उपयोग नहीं किया जाता है।

यह कहा गया है कि एंड्रॉइड स्टूडियो में, यदि आपके पास स्ट्रिंग के लिए कोड फोल्डिंग सक्षम है, तो यह आईडी में प्रतिस्थापित होगा जब यह ध्वस्त स्ट्रिंग दिखाता है। आप इस तरह कुछ देखेंगे:

// This... 
mTextView.setText(getString(R.string.order_quantity, 2)); 

// Will show as this when folded: 
mTextView.setText("Cantidad: {quantity}"); 

आपके दूसरे प्रश्न के लिए, स्ट्रिंग कॉन्सटेनेशन का उपयोग क्यों न करें? अन्य भाषाओं में, प्रतिस्थापन स्ट्रिंग के अंत में नहीं जा सकता है। आप हो सकता है कुछ की तरह:

values/strings.xml 
    <string name="order_quantity">%d items</string> 

values-es/strings.xml 
    <string name="order_quantity">Cantidad: %d</string> 

तो आप देख सकते हैं इस मामले में, बस एक साथ तार जोड़कर आप एक वैध परिणाम दे नहीं होगा।

+0

इसके बारे में क्षमा करें। मैंने इसे टाइप किया है। यह वास्तविक xml में सही है: पी –

+0

इसके अलावा मेरा मतलब जावा को नहीं बल्कि xml को जोड़ना था। तो मूल रूप से एक्सएमएल में अनुवादित स्ट्रिंग है और फिर जावा में मान को जोड़ती है। –

+0

फिर से, यह मेरे उदाहरण के बाद से काम नहीं करेगा, प्रतिस्थापन पैरामीटर एक अलग स्थिति में है (उदाहरण के लिए 3 आइटम बनाम आइटम: 3)। – kcoppock

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