2013-01-22 6 views
5

मेरे पास मेरी परियोजना में एक Localizable.strings फ़ाइल थी जिसके लिए मैं और स्थानीयकरण जोड़ना चाहता था।en.lproj फ़ोल्डर में lproj फ़ोल्डर्स बनाने के एक्सकोड बग को कैसे ठीक करें?

तो मैं प्रोजेक्ट सेटिंग्स पर गया और भाषाओं को जोड़ने के लिए "+" पर क्लिक किया। किसी भी तरह से मैं सही पैनल पर ऐसा नहीं कर सकता क्योंकि कोई "+" बटन नहीं है।

एक्सकोड फ़ाइल सिस्टम में en.lproj फ़ोल्डर के अंदर cn.lproj फ़ोल्डर बनाता है जो गन्दा है लेकिन कुछ अन्य lproj फ़ोल्डर्स जैसे de.lproj बनाते हैं, जहां वे संबंधित होते हैं।

मैं xx.lproj फ़ोल्डर को कैसे स्थानांतरित कर सकता हूं जहां यह एक्सकोड में सब कुछ तोड़ने के बिना संबंधित है? मुझे डर है कि उन्हें छोड़कर एक्सकोड उन्हें चल रहा है क्योंकि cn.lproj en.lproj का उप-फ़ोल्डर नहीं होना चाहिए।

उत्तर

1

स्थानीयकरण जोड़ने का सही तरीका एक्सकोड में आपके प्रोजेक्ट इन्फो फलक के माध्यम से होगा।

यह इस तरह दिखता है:

Here's the most obvious way to add a localization via Xcode

मैं यह करने के किसी अन्य तरीके से मुसीबत (या परेशानी) की मांग करने की कोशिश कर रहा हो सकता है लगता होगा।

+0

अच्छा जवाब माइक :) –

+3

यही मैंने किया और एक्सकोड en.lproj फ़ोल्डर के अंदर यादृच्छिक रूप से lproj फ़ोल्डर्स बना रहा है जो निश्चित रूप से सही नहीं है। सवाल देखें – openfrog

+0

जब मैं उस परीक्षण प्रोजेक्ट में स्थानीयकरण जोड़ता हूं तो आप वहां देखते हैं, यह सही जगहों पर "zh-Hans.lproj'" और "de.lproj'" फ़ोल्डर्स जोड़ रहा है। हो सकता है कि आप एक छोटी टेस्ट प्रोजेक्ट बनाने की कोशिश करना चाहें जैसे मैंने किया और देखें कि संरचना कैसी है, और उसके बाद अपने स्टोरीबोर्ड या स्ट्रिंग्स फ़ाइल के पथों की जांच करें और सुनिश्चित करें कि आपकी वर्तमान प्रोजेक्ट से स्थानीय फाइलें (और वास्तव में, फ़ाइल पथ) जल्दी से बनाई गई परीक्षण परियोजना में से एक की तरह दिखें। –

0

मुझे लगता है कि आपके पास अंग्रेजी के लिए एक फ़ोल्डर en.lpoj होना चाहिए। अब यदि आप "+" पर क्लिक करते हैं और xx भाषा के रूप में चुनते हैं तो आपको पुराने (एक ही स्तर पर कहने के लिए) "xx.lpoj" नामक एक और नाम प्राप्त करना चाहिए और en.lproj के अंदर नहीं। तो इस गलत उप-फ़ोल्डर को हटाएं और इसे फिर से करें ...

+0

क्या यह कई बार फिर से किया गया लेकिन कुछ भाषाएं en.lproj के अंदर बनाई गईं। – openfrog

3

जैसा कि यह पता चला है कि यह एक एक्सकोड बग है, लेकिन सौभाग्य से इसे हल किया जा सकता है।

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

+0

यह सबसे अच्छा जवाब है। एक्सकोड ने आगे की भाषा जोड़ने के बाद अपनी परियोजना को खराब करना शुरू कर दिया।मैं गिट में आखिरी 'अच्छी' प्रतिबद्धता पर वापस गया, अगली भाषा में जोड़ा, लेकिन कम से कम फाइलों (2 स्टोरीबोर्ड) के साथ। तब मैंने अंग्रेजी फ़ोल्डर की सामग्री को नए lproj फ़ोल्डर में कॉपी किया और उस फ़ोल्डर को एक्सकोड में खींच लिया जैसा आपने वर्णन किया था। सुंदर नहीं है, लेकिन यह काम करता है। मेरे पास अभी भी स्टैक्ड मोड (i18n तीर के साथ) में कुछ संपत्तियां बाकी हैं, लेकिन मैं उन्हें छोड़ने जा रहा हूं जहां वे हैं .... मैंने बेहतर समाधान खोजने के लिए घंटों तक प्रयास किया है, लेकिन एक्सकोड निश्चित रूप से विफल रहता है और मैं कारण क्यों नहीं मिल सकता है। – brainray

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