2009-10-13 23 views
19

हमारे पास दो .po फाइलें हैं, प्रत्येक सॉफ्टवेयर के एक टुकड़े की विभिन्न शाखाओं से।क्या दो .po अनुवाद फ़ाइलों को एक साथ जोड़ना संभव है?

हमें इन्हें एक .po फ़ाइल में संयोजित करने की आवश्यकता है।

दो फाइलों के बीच डुप्लीकेट हैं, और आदर्श हैंडलिंग एक फ़ाइल के तारों के लिए अनुकूल (लगातार) होने के लिए होगी।

हमारे पास एक एसयूएसई प्रणाली है इसलिए - आउटपुट फ़ाइल में डुप्लिकेट को अनदेखा/विलय करने का व्यवहार प्रतीत नहीं होता है, जिसमें सूर्य संस्करण एक वेब पेज से मिले एक पृष्ठ पृष्ठ के अनुसार है। (हमारे पास सूर्य मशीन आसान नहीं है!)

+0

की [मर्ज 2 gettext फ़ाइलें] संभावित डुप्लिकेट (http://stackoverflow.com/प्रश्न/3559 9 4/मर्ज-2-गेटटेक्स्ट-फाइलें) – DanMan

उत्तर

24

आप जो देख रहे हैं वह msgcat उपयोग है, यह निर्दिष्ट पीओ शब्दकोशों को जोड़ता है और विलीन करता है।

यह gettext utils का हिस्सा है, अधिक जानकारी के लिए कृपया gettext manual page on msgcat से परामर्श लें।

+2

गैर पीडीएफ लिंक: http://www.gnu.org/software/gettext/manual/gettext.html – rve

+0

नियमित 'बिल्ली' के रूप में सरल उपयोग करें, लेकिन सभी की जांच करें "अस्पष्ट" के लिए आउटपुट (आपको वहां एक संस्करण चुनना होगा)। –

+0

नोट: HTML लिंक को उत्तर में डाला गया है, इसलिए @ rve की टिप्पणी अब और समझ में नहीं आती है। ;) – lxg

2

मैं msgmerge का उपयोग करें:

msgmerge [old_file.po] [new_file.po] > output.po 

यह मेरे लिए काम करता है, लेकिन ध्यान रखें कि यह एक मूर्खतापूर्ण मर्ज करता हो, यह है, यह old_file में प्रविष्टियों (नई फ़ाइल पुराने अधिलेखित करता है) को छोड़ देता है।

+3

'msgmerge' फ़ाइल मौजूदा अनुवाद में नए टेम्पलेट को लागू करने के लिए है। यह डिज़ाइन द्वारा दूसरी फ़ाइल में किसी भी स्थानीयकरण को त्याग देगा! स्थानीयकरण डेटा विलय करने के लिए 'msgcat' का प्रयोग करें। अफसोस की बात है, यह केवल वास्तविक 3-तरफा विलय के बजाय बेवकूफ कटौती करता है जिसे आप संस्करण नियंत्रण के साथ रखना चाहते हैं। –

+0

यदि आपके पास दोनों फाइलों में से कुछ संदेश हैं तो यह भी बुरा है। फिर आपको "some.po: 16008: ..." यह पहली परिभाषा "शैली संदेश का स्थान होगा और यह फाइलों को संयोजित नहीं करेगा। मैं किसी भी फ़ाइल से पहले उपलब्ध अनुवाद का उपयोग कैसे कर सकता हूं? – nagylzs

5

आप poedit का उपयोग कर सकते हैं। अपने वर्तमान पो-फ़ाइल मर्ज करने के लिए, आप इसे खोलने के लिए करना होगा और पर क्लिक करें:

  • कैटलॉग> पॉट-फ़ाइल से अद्यतन।
  • सभी फ़ाइलों को फ़िल्टर सेट और अपने second.po फ़ाइल का चयन

Poedit आप नए & अप्रचलित तार दिखाएगा

+0

यदि आप जीयूआई चाहते हैं, तो मैं आपके वर्चुअल सिस्टम के लिए उपलब्ध होने पर 'virtaal' का उपयोग करने का सुझाव दूंगा। –

+0

मुझे लगता है कि poEdit इस तरह के कार्य के लिए ठीक काम करता है! उत्तर के लिए धन्यवाद, यह मेरी मदद की! – markus

+0

Poedit वास्तविक अनुवादों को उस तरह से स्थानांतरित नहीं करता है, हालांकि, बस '। – DanMan