2012-09-23 8 views
8

छोड़कर चिह्नित किया गया है, मुझे फ्लास्क बेबेल में एक मूल अनुवाद कार्य नहीं मिल सकता है।फ्लास्क बेबेल - 'अनुवाद/डी/एलसी_एमएसएसएजीईएस/संदेश.po' को अस्पष्ट,

यहां मेरे कदम हैं।

  1. मैं एक पेज {{_("Hello")}}

  2. मैं इस आदेश चला में यह है।

    pybabel extract -F babel.cfg -o messages.pot . 
    
  3. मैं जर्मन के लिए यह आदेश चलाता हूं।

    pybabel init -i messages.pot -d translations -l de 
    
  4. यहाँ मो मैं इस आदेश चला /app/translations/de/LC_MESSAGES/messages.po

    # German translations for PROJECT. 
    # Copyright (C) 2012 ORGANIZATION 
    # This file is distributed under the same license as the PROJECT project. 
    # FIRST AUTHOR <[email protected]>, 2012. 
    # 
    #, fuzzy 
    msgid "" 
    msgstr "" 
    "Project-Id-Version: PROJECT VERSION\n" 
    "Report-Msgid-Bugs-To: [email protected]\n" 
    "POT-Creation-Date: 2012-09-24 03:36+0800\n" 
    "PO-Revision-Date: 2012-09-24 03:37+0800\n" 
    "Last-Translator: FULL NAME <[email protected]>\n" 
    "Language-Team: de <[email protected]>\n" 
    "Plural-Forms: nplurals=2; plural=(n != 1)\n" 
    "MIME-Version: 1.0\n" 
    "Content-Type: text/plain; charset=utf-8\n" 
    "Content-Transfer-Encoding: 8bit\n" 
    "Generated-By: Babel 0.9.6\n" 
    
    #: templates/baseh5.html:129 
    msgid "Hello" 
    msgstr "Guten Tag" 
    
  5. में के लिए जर्मन फ़ाइल है।

    pybabel compile -d translations 
    

    यही मुझे मिलता है।

    catalog 'translations/de/LC_MESSAGES/messages.po' is marked as fuzzy, skipping 
    
  6. सेट इस कुप्पी

    app.config['BABEL_DEFAULT_LOCALE'] = 'de' 
    

मुझे क्या मिलेगा है? मुझे Hello मिलता है। फ्लास्क बेबेल क्यों काम नहीं किया? मैं अस्पष्ट से कैसे निपटूं? यह मूल होना चाहिए था।

pybabel compile -f -d translations 

'फजी' संदेश msgid रेखा के ऊपर एक #, fuzzy लाइन के साथ चिह्नित कर रहे हैं, और कर रहे हैं:

+0

क्या आप निश्चित हैं कि आपकी .po फ़ाइल में कोई 'अस्पष्ट' रेखाएं नहीं हैं? शीर्ष पर लाइन के अलावा, वह है। आप '-f' ध्वज के साथ इसे किसी भी तरह संकलित करने के लिए बेबेल को मजबूर कर सकते हैं। –

+0

मैं उस ध्वज को कहां रखूं? कमांड लाइन क्या दिखती है? क्या आप एक उत्तर पोस्ट कर सकते हैं? – Tampa

+0

यह काम किया !!!!!!!!!! धन्यवाद – Tampa

उत्तर

8

आप संदेशों को संकलित करने के लिए मजबूर कर सकते pybabel compile-f (या --use-fuzzy) कमांड लाइन स्विच के साथ के रूप में फजी चिह्नित एक विलय का परिणाम जहां एक संदेश पिछले संस्करण से थोड़ा सा माना जाता है। fuzzy के रूप में चिह्नित एक संदेश को यह सुनिश्चित करने के लिए मानव द्वारा देखा जाना चाहिए कि अनुवाद को अद्यतन करने की आवश्यकता नहीं है, जिसके बाद मानव अनुवादक उस ध्वज को हटा देता है।

+2

मुझे नहीं लगता कि उत्तर बहुत अच्छी तरह फिट बैठता है। स्पष्ट रूप से संकलन को मजबूर करना गलत समाधान है - इसके बजाए, एक स्पष्टीकरण क्यों "अजीब" (खाली) अस्पष्ट संदेश अधिक उपयोगी होगा। उदाहरण के लिए, मुझे नहीं पता कि मुझे इसे गैर-अस्पष्ट के रूप में चिह्नित करना चाहिए या बस इसे पूरी तरह हटा दें। – ThiefMaster

+0

@ थिफमास्टर: मेरा उत्तर * पहले से ही उस पर छूता है। आप '#, अस्पष्ट 'रेखा को हटा देंगे; अनुवाद उपकरण आमतौर पर आपके लिए उस ध्वज का ख्याल रखते हैं। –

3

जैसा कि पाइबेल ने कहा: सूची को स्वयं को "अस्पष्ट" (6 वां पंक्ति) के रूप में चिह्नित किया गया था। यदि आप उस पंक्ति को हटाते हैं, तो आपको 'बल' विकल्प की आवश्यकता नहीं है।