2012-05-07 7 views
9

के लिए एक विशिष्ट स्थानीयकरण का उपयोग करने के लिए मजबूर करें मैं एक ऐप विकसित कर रहा हूं कि, अन्य चीजों के साथ, एक बड़ी ऑडियो फ़ाइल (30 एमबी) खेलेंगे।लक्ष्य

मैं कई देशों में ऐप स्टोर में ऐप सबमिट करना चाहता हूं। ऑडियो फ़ाइल प्रति लक्षित देश अलग है, शेष ऐप वही रहता है (हालांकि स्थानीयकृत)।

मैंने प्रत्येक देश के लिए एक लक्ष्य बनाया है, एक बैश स्क्रिप्ट लक्ष्य के आधार पर संकलित ऐप में सही ऑडियो फ़ाइल की प्रतिलिपि बनाने का ख्याल रखती है, और यह बहुत अच्छा काम करती है।

मैंने इसे बनाए रखने में आसान बनाने के लिए ressources (छवियों और Localized.strings) को भी स्थानांतरित किया है।

मान लें कि मैंने स्वीडन के लिए अपना लक्ष्य बनाया है, मैं केवल स्वीडिश स्थानीयकरण को शामिल करना चाहता हूं ताकि ऐप को हमेशा स्वीडिश भाषा (जो ऑडियो फ़ाइल से मेल खाती हो) दिखाए।

यहां वास्तविक प्रश्न है: * मैं किसी स्थानीय लक्ष्यीकरण को लक्ष्य से कैसे बाहर कर सकता हूं या केवल एक विशिष्ट स्थानीयकरण का उपयोग करने के लिए लक्षित कर सकता हूं, फोन सेटिंग्स के बावजूद?

+0

आप की जाँच करने के लिए चाहते हो सकता है: http://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language –

उत्तर

0

Lvsti के उत्तर में आपकी टिप्पणी के आधार पर (जहां आप कह रहे हैं कि आप ऐसा कर रहे हैं कि आपकी कुछ भाषाओं में अनुवाद अभी तक समाप्त नहीं हुए हैं लेकिन आप जो भी चाहते हैं उसे छोड़ना चाहते हैं), शायद एक विकल्प के रूप में सभी प्रासंगिक स्थानीयकरण फ़ाइलों को हटाने या अपनी बिल्ड सेटिंग्स के साथ गड़बड़ करने के लिए आप अपने एक्सकोड प्रोजेक्ट में भाषाओं की सूची संपादित करने का प्रयास कर सकते हैं? यह प्रति लक्ष्य नहीं बल्कि प्रति परियोजना है, लेकिन यह आपको उन भाषाओं को बहिष्कृत करने की अनुमति दे सकता है जिन्हें आप अपने निर्माण में नहीं चाहते हैं। अपनी प्रोजेक्ट सेटिंग्स में स्थानीयकरण के अंतर्गत देखें (एक छोटा सा आइकन है जिसका उपयोग आप किसी भाषा को हटाने के लिए कर सकते हैं)।

enter image description here

+0

यह अब के लिए अधूरा स्थानीयकरण को छोड़ने का एक अच्छा तरीका प्रतीत होता है - सबसे अच्छा यह सेटिंग प्रति लक्ष्य था, लेकिन ओह ठीक है, शायद भविष्य में! धन्यवाद! –

0

मुझे लगता है कि आप इस पर जाकर की यह खींचने में सक्षम हो सकता है:

लक्ष्य सेटिंग => जानकारी =>स्थानीयकरण नामक एक नई पंक्ति जोड़ें => के प्रकार के साथ कि सरणी के लिए एक नया तत्व जोड़ें जिस भाषा को आप चाहते हैं (मुझे लगता है कि डिफ़ॉल्ट अंग्रेजी है)

मैंने इसका परीक्षण नहीं किया है, अगर यह काम करता है तो बस मुझे बताएं।

+1

मैंने कोशिश की है कि, दुर्भाग्य से ऐप अभी भी अंग्रेजी में प्रदर्शित हो रहा है (मेरी फोन भाषा अंग्रेजी है): –

0

यदि मैं आपका प्रश्न समझता हूं, तो आपको वास्तव में स्थानीयकृत ऐप की आवश्यकता नहीं है, या कम से कम पूरी तरह से स्थानीयकृत नहीं है। यदि ऐसा है, तो मैं एक रन-स्क्रिप्ट बिल्ड चरण का उपयोग करूंगा जो वर्तमान लक्ष्य के आधार पर उचित गैर-स्थानीयकृत लेकिन लक्षित-विशिष्ट संसाधनों की प्रतिलिपि बनाने के लिए ज़िम्मेदार है। जैसे मान आप अलग-अलग भाषाओं के लिए सभी संस्करणों के साथ अपनी परियोजना जड़ में एक ऑडियो फ़ोल्डर है, अपनी स्क्रिप्ट दिखाई देगा:

cp "$PROJECT_DIR/Audio/$TARGETNAME.mp3" "$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/audio.mp3" 

जो उदा होगा बंडल से सीधे "audio.mp3" को "Swedish.mp3" कॉपी/नाम बदलें।

+0

यही वह तरीका है जिसका मैं अभी ऑडियो फ़ाइल के लिए उपयोग कर रहा हूं। मैं बस सोच रहा हूं कि, यदि एक्सकोड के अंतर्निहित स्थानीयकरण टूल का उपयोग करना संभव नहीं है, क्योंकि यह फ़ाइलों को प्रबंधित करना आसान बनाता है (स्थानीयकृत xib-files संपादित करें और इसी तरह)। ऐसा लगता है कि मुझे एक विशिष्ट लक्ष्य के लिए इस्तेमाल किए गए लोकेल को हार्डकोड करने का एक तरीका है। आपका सुझाव वह मार्ग है जो मुझे बेहतर तरीके से नहीं मिलता है :-) * क्रॉसिंग उंगलियों * पीएस। आप यहां लाइन ब्रेक कैसे डालते हैं? दो जगहें मेरे लिए ऐसा नहीं लगती हैं? –

+0

मेरी समझ के लिए, स्थानीयकरण एक ही लक्ष्य के भीतर एक resouce के विभिन्न संस्करण प्रदान करने के लिए है, इस प्रकार एक्सकोड को स्थानीयकरण को त्यागने के लिए मजबूर करना अन्यथा यह पता चलता है कि वास्तव में बहुत अधिक समझ नहीं आती है ... – Lvsti

+0

हाँ, लेकिन मेरा मतलब है, आपको कम से कम यह निर्दिष्ट करने में सक्षम हो कि विशिष्ट स्थानीयकरण का उपयोग न करें, भले ही लोकेल नाम वाला फ़ोल्डर वहां है। मेरे पास 2 अनुवाद हैं जो मेरे ऐप में समाप्त नहीं हुए हैं, 3 अन्य जो ऐप स्टोर के लिए तैयार हैं। लेकिन क्योंकि दो अधूरे अनुवादों को स्वत: पता लगाया जा सकता है और इस्तेमाल किया जा सकता है, मैं अनुवादक से अनुवाद वापस लेने से पहले अपना ऐप सबमिट नहीं कर सकता (या मैंने अभी तक निब फाइलों पर किए गए काम को हटा दिया है और मुझे एक बार मिलना शुरू हो गया है अनुवाद)। आशा है कि मैं कुछ याद कर रहा हूँ! –