2012-04-16 17 views
26

मैं अपने आवेदन के अंतर्राष्ट्रीयकरण को शामिल करने की कोशिश कर रहा हूं, और केवल परीक्षण उद्देश्यों के लिए मैंने Localizable.string फ़ाइल में एक साधारण पंक्ति जोड़ा है।Localizable.strings दूषित?

यह मेरे पूरे फ़ाइल है:

"Test locale" = "Test locale"

और मैं इस त्रुटि मिलती है की कोशिश जब मैं अपने आवेदन चलाएँ:

Localizable.strings:0: error: validation failed: The data couldn’t be read because it has been corrupted.

मैं UTF-16 के लिए "पाठ एन्कोडिंग" बदलते कोशिश की है लेकिन कुछ भी हल नहीं हुआ।

कोई विचारधारा?

अग्रिम धन्यवाद।

+0

यहाँ एक पुस्तकालय है कि आप परियोजना https://github.com/dipkasyap/DGLocalization – dip

उत्तर

56

यदि यह आपकी पूरी फ़ाइल है, तो अंत में अर्धविराम जोड़ें। पहली पंक्ति के अंत में के बजाय '=' की;

/* Comment for Very Long Sentence */ 
"Very Long Sentence Very Long Sentence Very Long Sentence Very Long Sentence " =; 
"Very Long Sentence Very Long Sentence Very Long Sentence Very Long Sentence "; 

(सूचना '=': यह करने के लिए परिवर्तित करें:

"Test locale" = "Test locale";

+1

हे भगवान, मैं कैसे बेवकूफ, बहुत आसान था स्थानीय बनाना मदद कर सकता है है। धन्यवाद। –

+0

ओएमजी..मैं कभी उम्मीद नहीं करता कि मैं इस तरह की गलती करूंगा .. –

+0

एंड्रॉइड से तेजी से आने के साथ आईओएस पहली बार सीखना, यह वास्तव में वास्तव में एक कष्टप्रद गलती है ... – Warpzit

3

मेरे मामले में, यह इस तरह था)

आशा है कि यह किसी को मदद करता है ...

+0

जब आप बिना जांच किए कॉपी/पेस्ट करते हैं तो बहुत कुछ होता है। .. –

1

मेरे मामले में यह स्ट्रिंग के अंदर कोष्ठक था - मैं befor स्लैश लगाने की जरूरत ई \ "।

37

अधिक विस्तृत जानकारियां प्राप्त करने के लिए आप कमांड लाइन से संपत्ति सूची उपयोगिता का उपयोग कर सकते हैं:

plutil -lint <your_strings_file>.strings 

-lint स्विच वाक्यविन्यास की जांच के लिए है। अगर आपको कोई त्रुटि है तो आपको लाइन नंबर और अधिक जानकारी मिल जाएगी, और इस मुद्दे को ठीक करने के तरीके पर सामान्य बेहतर दिशा-निर्देश मिलेगा।

+1

धन्यवाद, बिल्कुल मुझे क्या चाहिए। हाथ से जांचने के लिए फ़ाइल का बहुत बड़ा तरीका। –

+0

क्या इस आदेश को एक्सकोड बिल्ड में एकीकृत करने का कोई तरीका है? –

+0

कभी भी कोशिश नहीं की, लेकिन यह वही है जो आप कोशिश कर सकते हैं: आप "चरण चरणों" में एक रन स्क्रिप्ट चरण जोड़ सकते हैं और, इस चरण में, एक स्क्रिप्ट को कॉल करें जो आपकी सभी .strings फ़ाइलों को जांचती है। टूर स्क्रिप्ट प्री-बिल्ड निष्पादित करने के लिए आप स्क्रिप्ट चरण को दूसरों के शीर्ष पर खींच सकते हैं (या दूसरों को नीचे खींच सकते हैं)। यह आपने एक्सकोड सेट किया है -> प्राथमिकताएं -> बिल्डिंग -> बिल्ड विकल्प "त्रुटियों के बाद भवन जारी रखें" फिर स्क्रिप्ट विफल होने पर बिल्ड बंद हो जाता है। – lucianoenrico

0

मैंने पूरे फ़ोल्डरों की जांच करने के लिए एक छोटी सी स्क्रिप्ट बनाई है। प्लूटिल का उपयोग करके स्ट्रिंग फाइलें।

https://github.com/CarlesEstevadeordal/check_strings

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