2012-03-26 19 views
8

मैं कंपनी अनुवाद प्रणाली (Pootle के साथ, यदि यह प्रासंगिक है) द्वारा उत्पन्न .po फ़ाइलों का एक सेट उपयोग कर रहा हूं।.po फाइलों में त्रुटियों का पता लगाने

$ msgfmt -v -C default.po 
default.po:1:2: syntax error 
msgfmt: found 1 fatal error 

: मैं मुसीबत .mo (बाइनरी समकक्ष .po करने के लिए फ़ाइलों) को इन फ़ाइलों को परिवर्तित करने msgfmt उपयोगिता (-C ऑपरेटर, जो फ़ाइल के स्वरूप की जाँच करता है के साथ) का उपयोग कर, मैं निम्नलिखित त्रुटि मिलती आ रही है इस त्रुटि को फेंकने के लिए, वास्तव में, msgfmt का कारण बन रहा है, इस बारे में अधिक जानकारी प्राप्त करने के लिए मैंने काफी व्यापक रूप से गुगल किया है।

मैंने फ़ाइल की पहली पंक्तियों को हटाने का भी प्रयास किया है (जो सूची का हिस्सा नहीं थे, लेकिन केवल टिप्पणियां या खाली अनुवाद तार)।

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

क्या कोई जानता है कि मैं इन फ़ाइलों के साथ त्रुटि का अधिक विशेष रूप से निदान कैसे कर सकता हूं? साथ ही, वही व्यवहार सभी स्थानीय फाइलों में प्रदर्शित होता है, न केवल एक विशिष्ट फ़ाइल।

उत्तर

7

यह लगभग निश्चित रूप से बीओएम के साथ एक समस्या की तरह लगता है, पीओ फाइलों में उन्हें शामिल नहीं होना चाहिए। अनुवाद टूलकिट से pocompile चलाने का एक विकल्प होगा, क्योंकि आप पहले से ही Pootle का उपयोग कर रहे हैं pocompile पहले से ही आपके सिस्टम पर स्थापित होना चाहिए।

5

मेरा अनुमान यह भी होगा कि यह एक एन्कोडिंग समस्या है। चूंकि त्रुटि फ़ाइल के पहले कुछ वर्णों में पहले से दिखाई देती है, इसलिए अपराधी शायद byte order mark है, जो utf-8 में बाइट अनुक्रम 0xEF, 0xBB, 0xBF के रूप में एन्कोड किया गया है। इसे जांचने का सबसे अच्छा तरीका हेक्स संपादक के साथ फ़ाइल को देखना होगा, या एक संपादक का उपयोग करना होगा जो आपको बता सकता है कि फ़ाइल में बाइट ऑर्डर चिह्न है या नहीं।

उदाहरण के लिए विम में आप set bomb? का उपयोग कर सकते हैं और यह आपको bomb या nobomb बताएगा।

संपादित करें:Here किसी एक UTF-8 एन्कोडेड फ़ाइल एक बाइट क्रम चिह्न के साथ शुरू की वजह से ठीक उसी त्रुटि संदेश होने का एक ब्लॉग प्रविष्टि है।

+1

विंडोज उपयोगकर्ता: लिंक किए गए आलेख में सुझाव नोटपैड ++ के मेनू विकल्प का उपयोग करने का सुझाव दिया गया: एन्कोडिंग> बीओएम के बिना यूटीएफ -8 में कनवर्ट करें – plusjeff

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