यह सामग्री Catapult Wars Lab के App Hub से उपलब्ध नमूने के लोकलाइज किए गए संस्करण का वर्णन करती है।
महत्वपूर्ण टिप्पणियाँ
• अंग्रेजी स्ट्रिंग के अनुवाद के लिए मशीन अनुवाद का उपयोग किया गया था।
सुनिश्चित करना कि स्ट्रिंग लोकलाइज किए जाने योग्य है - संसाधन फाइलों का निर्माण (RESX)
1. Visual Studio के मुख्य मेन्यू में, Project >> Add New Item…को क्लिक करें

2. Resources File चुनें और फाइल को उचित नाम दें

3. 1 व 2 के चरण दुहराएँ और भाषा विशेष के लिए संसाधन फाइलें बनाएँ (उदाहरण, जर्मन के लिए CatStrings.de.resx)।
4. नीचे के स्क्रीनशॉट अंग्रेजी के संसाधन फाइल CatStrings.resx, और जर्मन और फ्रांसीसी संसाधन फाइलें – CatStrings.de.resx और CatStrings.fr.resx को क्रमशः दिखाता है।

संसाधन फाइलों से स्ट्रिंग का उपयोग
कोड में स्ट्रिंग की हार्ड-कोडिंग से बचें। संसाधन फाइल (RESX) में उपयोगकर्ता के द्वारा देखने योग्य किसी स्ट्रिंग को रखें। MainMenuScreen.cs में निम्नलिखित उदाहरण कोड दिखाता है कि कैसे संदर्भ स्ट्रिंग किसी संसाधन फाइल में रखे गए।
MainMenuScreen.cs लोकलाइजेशन के लिए तैयार नहीं
Line 29 // Create our menu entries.
Line 30 MenuEntrystartGameMenuEntry = newMenuEntry("Play");
Line 31 MenuEntryexitMenuEntry = newMenuEntry("Exit");
MainMenuScreen.cs लोकलाइजेशन के लिए तैयार
Line 32 // Create our menu entries.
Line 33 // LOCALIZATION
Line 34 // string in string table
Line 35 MenuEntrystartGameMenuEntry = newMenuEntry(CatStrings.play_text);
Line 36 MenuEntryexitMenuEntry = newMenuEntry(CatStrings.exit_text);


फॉन्ट के साथ काम करना
spritefont में गिल्फ समर्थन
फॉन्ट को लक्ष्य भाषाओं के लिए गिल्फ समर्थन जरूर शामिल करने चाहिए। उदाहरण के लिए, यदि गेम टाइटल को पश्चिमी यूरोपीय भाषाओं – फ्रेंच, इतालवी, जर्मन, और स्पैनिश – के लिए लोकलाइज किया जाना है तो â,ë,î,ø,ú जैसे गिल्फ के लिए समर्थन जरूरी हैं।
MenuFont.spritefont से नीचे के उदाहरण कोड MoireExtraBold फॉन्ट को Impact फॉन्ट से बदलने को वर्णन करता है।
MenuFont.spritefont लोकलाइजेशन के लिए तैयार नहीं
Line 14 <FontName>MoireExtraBold</FontName>


सभी जरूरी गिल्फ के लिए समर्थन के बिना, गेम अनुप्रयोग को रनटाइम क्रैश का सामना करना होगा।
MenuFont.spritefont लोकलाइजेशन के लिए तैयार
Line 20 <FontName>Impact</FontName>

Spritefont सेटिंग
जब spritefont का उपयोग किया जाता है, सभी जरूरी गिल्फ के लिए समुचित वर्ण परिसरों का उपयोग महत्वपूर्ण होता है। नीचे MenuFont.spritefont से स्रोत कोड लक्ष्य लोकलाइजेशन भाषा के लिए गिल्फ परिसर में परिवर्तन का वर्णन करता है।
वर्ण परिसर केवल लैटिन गिल्फ को शामिल करता है लोकलाइजेशन के लिए तैयार नहीं
MenuFont.spritefont
Line 54 <CharacterRegion>
Line 55 <Start> </Start>
Line 56 <End>~</End>
Line 57 </CharacterRegion>
वर्ण परिसर विस्तारित लैटिन गिल्फ शामिल करता है लोकलाइजेशन के लिए तैयार
MenuFont.spritefont
Line 60 <CharacterRegion>
Line 61 <Start> </Start>
Line 62 <!--
Line 63 LOCALIZATION
Line 64 Update range to 255 to include glyphs for Western European glyph support
Line 65 -->
Line 66 <End>ÿ</End>
…
Line 71 </CharacterRegion>
बिटमैप फॉन्ट में गिल्फ समर्थन
जब बिटमैप फॉन्ट बनाने के लिए किसी टूल का उपयोग किया जाता है जैसे कि FontMaker टूल, सुनिश्चित करें कि समुचित परिसर पश्चिमी गिल्फ समर्थन में शामिल किया गया है। यह टूल Microsoft के गेम डेवलपर नेटवर्क पर उपलब्ध है। पश्चिमी गिल्फ समर्थन के लिए 255 तक का उपयोग करें।
टेक्सचर के साथ काम
नीचे की छवि में हार्ड कोडेड स्ट्रिंग हैं।
Instructions.png लोकलाइजेशन के लिए तैयार नहीं

जेनेरिक पृष्ठभूमि जहाँ स्ट्रिंग को रेंडर किया जा सकता है।
Instructions.png लोकलाइजेशन के लिए तैयार

नीचे InstructionsScreen.cs से स्रोत कोड वर्णन करता है कि कैसे रन टाइम के दौरान स्क्रीन पर पाठ रेंडर किया जाए।
InstructionsScreen.cs
Line 122 Vector2textpos = newVector2(20f,25f);
Line 123 spriteBatch.DrawString(font, CatStrings.instructions_text1, textpos,
Color.DarkOrange);
Line 124 textpos.Y += font.MeasureString(CatStrings.instructions_text1).Y;
Line 125 spriteBatch.DrawString(font, CatStrings.instructions_text2, textpos,
Color.DarkOrange);
Line 126 textpos.Y += font.MeasureString(CatStrings.instructions_text2).Y;
Line 127 spriteBatch.DrawString(font, CatStrings.instructions_text3, textpos,
Color.DarkOrange);
Line 128 textpos.Y += font.MeasureString(CatStrings.instructions_text3).Y;
Line 129 spriteBatch.DrawString(font, CatStrings.instructions_text4, textpos,
Color.DarkOrange);
UI कल्चर बदलने के लिए डेमो कोड
मुख्य मेन्यू में, लोकलाइज किए नमूना गेम में एक तीसरा मेन्यू विकल्प शामिल है जो मौजूदा UI कल्चर को कार्यशील थ्रेड के लिए प्रदर्शित करता है। इस पाठ पर क्लिक करना (English (United States)) UI कल्चर को अगले कल्चर में बदल देगा जो फ्रेंच (फ्रांस) है।

यह भाषा परिवर्तन सतत चक्र में काम करता है। फ्रेंच लोड करने के बाद, आगे बढ़ने पर French (France) German (Germany) को लोड करेगा। German (Germany) का टैपिंग पुनः English (United States) एसेट की ओर लौटाएगा।

MainMenuScreen.cs
Line 107 voidchangeLanguage(object sender, EventArgs e)
Line 108 {
Line 109 // Tell the resource manager what language to use when loading strings.
Line 110 if (Thread.CurrentThread.CurrentUICulture.Name == "en-US")
Line 111 {
Line 112 // Changes the CurrentCulture of the current thread to de-DE.
Line 113 Thread.CurrentThread.CurrentUICulture = newCultureInfo("fr-FR");
Line 114 ScreenManager.AddScreen(newInstructionsScreen("fr-FR"), null);
Line 115 }
Line 116 elseif (Thread.CurrentThread.CurrentUICulture.Name == "fr-FR")
Line 117 {
Line 118 // Changes the CurrentCulture of the current thread to de-DE.
Line 119 Thread.CurrentThread.CurrentUICulture = newCultureInfo("de-DE");
Line 120 ScreenManager.AddScreen(newInstructionsScreen("de-DE"), null);
Line 121 }
Line 122 elseif (Thread.CurrentThread.CurrentUICulture.Name == "de-DE")
Line 123 {
Line 124 // Changes the CurrentCulture of the current thread to fr-FR.
Line 125 Thread.CurrentThread.CurrentUICulture = newCultureInfo("EN-us");
Line 126 ScreenManager.AddScreen(newInstructionsScreen("EN-us"), null);
Line 127 }
Line 128 }
नोट करें कि यह कोड किसी फोन रोबोट की बिना जरूरत के विभिन्न भाषा एसेट को केवल दिखाने के लिए है। XNA प्लेटफॉर्म Windows Phone 7 भाषा सेटिंग्स पर आधारित लोकलाइज्ड एसेट स्वतः लोड करेगा।
भाषा सेटिंग को Settings >> region & language >> Display language पर और विभिन्न भाषा सेटिंग में से चुनकर बदला जा सकता है। इस फोन को भाषा परिवर्तन को पुनःआरंभ करने के लिए जरूर फिर आरंभ किया जाना होगा। यदि display language सेटिंग को WP7 डिवायस पर बदला नहीं जा सकता है, Microsoft kb आलेख आईडी #2413345 - http://support.microsoft.com/kb/2413345 का संदर्भ लें.





यह दस्तावेज अंतरराष्ट्रीय उद्देश्यों के लिए “जैसा है” के रूप में केवल दिया गया है। इस दस्तावेज में अभिव्यक्त सूचना और विचार, जिसमें URL और अन्य इंटरनेट वेब साइट संदर्भ शामिल हैं, बिना सूचना के बदले जा सकते हैं। आपको इसे उपयोग करने का जोखिम खुद उठाना होगा। Microsoft कोई वारंटी, गारंटी या शर्तें नहीं देता है।
आप इस दस्तावेज को अपने आंतरिक, संदर्भ उद्देश्यों के लिए कॉपी और उपयोग कर सकते हैं। यह Microsoft का गोपनीय और सांपत्तिक दस्तावेज है। इसे गैर-प्रकटीकरण अनुबंध के अधीन ही केवल उद्घाटित और उपयोग किया जा सकता है।
Microsoft के पास इस दस्तावेज की विषय वस्तु से जुड़े पेटेंट, पेटेंट आवेदन, ट्रेडमार्क, कॉपीराइट या अन्य बौद्धिक संपदा अधिकार हो सकते हैं। Microsoft से प्राप्त किसी लिखित लाइसेंस अनुबंध में उल्लिखित के अलावे, इस दस्तावेज की प्रस्तुति आपको इन पेटेंट, ट्रेडमार्क, कॉपीराइट या अन्य बौद्धिक संपदा का लाइसेंस नहीं देती है।