कार्यक्रम का अन्तरराष्ट्रीयकरण अर्थात उसमें से कुछ आवश्यक पदो को लेकर उसे भिन्न भाषाओं में दर्शाना हैं।
स्थानीयकरण की प्रक्रीया तब कार्यरत होती हैं जब एक अन्तरराष्ट्रीय कार्यक्रम को संदेशो और विषय सूची के द्वारा उपलब्ध कराया जायें।
अन्तरराष्ट्रीयकरण के द्वारा एक अथवा एक से अधिक कार्यक्रमों को एक पैकेज में बदला जाता है। यह पैकेज अनेक भाषाओं में कार्य करने में सहयोग प्रदान करता है। यह एक सामान्य प्रक्रिया है जिसके द्वारा कार्यक्रमों को केवल अंग्रेजी भाषा तक सीमित नहीं रखा गया है,बल्कि अनेक भाषाओं में भी उसी प्रकार उपयोग किया जा सकता है। प्रोग्रामर इन कार्यक्रमों का अन्तरराष्ट्रीयकरण करने के लिये अनेक तरह की तकनीकों का उपयोग कर सकते है। इसमे कुछ पहले से प्रमाणित हो चुके है। जीएनयु गेट्टेक्सट इनमे से ही एक प्रमाणको प्रस्तुत करता है।
स्थानीयकरण एक ऐसी प्रवृत्ती है,जिसके द्वारा कार्यक्रमों का अन्तरराष्ट्रीयकरण हो गया है। एक कार्यक्रम सभी आवश्यक सूचनाओं को प्रदान करेगा और साथ में कार्यक्रम के इनपुट एवं आउटपुट का इस प्रकार से प्रबंध करेगा जिससे कि, इसे आम भाषा के अनुसार बनाया जा सके। यह एक विशेष प्रक्रिया है जिसके द्वारा अन्तराष्ट्रीय कार्यक्रमों को सामान्य विधी मे पुर्ण किया जाएगा और इसका एक विशेष रुप में उपयोग होगा। कार्यक्रमों को कुछ ऐसे अनेक फंक्शनो में बाॅॅंटा जाएगा जो कि रन-टाइम में रुप दे सके । कुछे देशो के लिए सभ्यता का विशेष वर्णन किया जाएगा, सभी सम्बन्धित अनुवादों को जोड़कर उसे उसी स्वाभाविक भाषा में` ढ़ाला जाएगा। इसप्रकार इसे इस देश या भाषा के लिए "स्थानीय" कहेंगे। उपयोगकर्ता कर्यक्रमों के स्थानीयकरण को विशेष चरो के विशिष्ट मूल्यों में जोड़ेंगे तथा उन कार्यक्रमों को प्रधान रुप में सम्पादित किया जाएगा, जिसके द्वारा यह सिध्द किया जा सके कि किसे स्थानीय रुप में उपयोग किया जाना चाहिए।
1. xgettext क्या करता है?
किसी भी कार्यक्रम को स्थानीय भाषा मे अनुवादित करने के लिए यह आवश्यक है कि उन सभी सन्देश वाक्यखण्डो(Message strings) को अनुवादित किया जाए जो कि उसके मूल गुप्त भाषा (source code) में उपस्थित हो। सन्देश वाक्यखण्डों (Message string) को अनुवादित करने का अभिप्राय यह है कि उसे सर्वप्रथम संक्षेप में किया जाए। xgettext कमाण्ड का निश्चित यही कार्य है। यह सन्देश वाक्य खण्डों (message strings)के लिये उन सभी स्रोत फ़ाइलों कि जाॅंच करेगा जो कि तर्को (arguments) के रुप में दिए गए है। यह उनसभी वाक्यखण्डों को बचे हुए कोड में से अलग करेगा जो कि " " द्वारा चिन्हित है। सर्वसाधारण (bydefault) रुप मे यह एक ऐसी एडिटेबल (editable ) फ़ाईल message.po बनाता है जिसमे कि यह सभी सन्देश स्रोत को रखेगा।
कामण्ड के साथ में विकल्प है: $ xgettext -a -c --force
xgettext के लिए हमारे द्वारा उपयोग किए गए विकल्प् :
-a : सभी वाक्यो को संक्षेप (extracts) मे करना
-d :hello-world.po मे आउटपुट परिणाम (सर्वसाधारन रुप में यह message.po है)
-k : अनुवादित वाक्यखण्डों को खोजने पर सूचना देना ।
-s : एक क्रम मे आउटपुट को दर्शाना ओर दोहरे शब्दो को हटाना
-v : xgettext व्यर्थ होगा जब यह सन्देश देगा ।
`--c`: c के समान कमेन्ट को निश्चित करना
`--force`: यदि सन्देश परिभाषित नही है तो भी हमेशा आउटपुट फ़ाईल लिखना
-`J` : उपस्थित फ़ाईल में सन्देशों को जोड़ना
फंंक्शन gettext :
जब इस पैकेज के द्वारा बहुभाषिय कार्यक्र्मों को लिखा जाता है तो वाक्य खण्डों को मूल गुप्तभाषा में लिखने के बजाए फ़न्शन काल मे भेजा जाता है। इस फ्क्शन को gettext कहते है। यह हमेशा एक ही वाक्यखण्ड के तर्क को ग्रहण करेगा ओर हमेशा एक ही वाक्यखण्ड को वापस करेगा। इस फक्शन में तर्क (arguments) के रुप मे भेजे गए वाक्यखण्ड को टेबल में उपस्थित अनुवाद के अनुरुप खोजा जाता है और यदि यह अनुवाद मिल जाता है तो gettext इसे वापस भेज देता हे नही तो कर्यक्रम अपने सर्वसाधारण भाषा में प्रवृत्त रहता है। सभी वाक्यखण्डों को रन-टाइम में प्रिन्ट करने से पहले यह आवश्यक है कि इसे gettext के द्वारा भेजा जाए।
२) .po फ़ाइल की रचना
po अर्थात portable object. कमान्ड xgettext को c की सभी मुलगुप्त फाईल की gnome कार्यक्रमों को अनुवाद करने के लिये नियुक्त किया जाता है। अगली प्रक्रिया में .po file में सूचनाओं का एकत्रित किया जाता है।
एक .po फ़ाइल में बहुत सी सूचनाएॅं होती है हर एक सूचना मौलिक अअनुवादित वाक्यखण्ड और इसके अनुरुप अनुवादित के बीच सम्बन्ध बनाए रखता है। .po फ़ाइल में उपस्थित लगभग सभी सूचनाएॅं एक ही प्रोजेक्ट से सम्बन्धित होती है ओर सभी अनुवादों को एक ही भाषा में किया जाता है एक .po फ़ाइल में उपस्थित सूचनाओं की रचना नियमानुसार है
white-space
# translator -comments
# automatic - comments
# reference... to the sourcecode
# flag..
msgid untranslated- string
1. कोर्स के प्रोजेक्ट के समय उपयोग किये कुछ आदेश जिसके साथ कुछ विकल्प भी है ।
$ msgfmt--output-file= जहाॅं --आउटपुट फ़ाइल , आउटपुट फ़ाइल को दर्शाता है।
msgstr अनुवादित वाक्यखन्ड :- ४) .mo फ़ाइल की रचना : .mo के लिए मशीन ओब्जेक्ट आदेश msgfint का उपयोग gnome एप्लीकेशन की अनुवादित .po फ़ाइलों को .mo file मे लाने के लिए किया जाता है। .mo फ़ाइलों, .po फ़ाइलो कि बायनरी फ़ार्मेट मे मशीन की योग्यता अनुसार अनुवाद करता है किसी भी c की फ़ाइल मे बदलाव अन्तरराष्ट्रीय और स्थानीय आधार के लिये आवश्यक है। हमे को हेडर फ़ाइल से सयुक्त करने की आवश्यकता है। c फ़ाइल में printf आदेश के साथ gettext को जोडने कि आवश्यकता है। उदा.के लिए - हमे बदलाव की आवश्यकता है printf(" यह अनुवादित लेखन को प्रिन्ट करेगा ") को printf(gettext("यह अनुवादित लेखन को प्रिन्ट करेगा ") इस रीति को स्पष्ट करने के लिए केवल gettext(x) को (x) से दर्शाना होगा इसके लिये यह जरुरी है कि हम gettext के बदले '_' जोडे । दुसरी मुख्य बात यह जरुरी है की कार्यक्रम को भाषा में परिभाषित किया जाये । इस कार्यक्रम(programme ) में सबसे पहले बुलाया जाऐ जिससे कि सिस्टम उपस्थित लोकस्थानीय चरो के अनुसार उचित .m फ़ाइल का चयन कर सके .
