स्थानीयकरण के लिए खेल कैसे तैयार करें?


48

कई परियोजनाएं स्थानीयकरण के बारे में तब तक नहीं सोचती हैं जब तक कि खेल पूरा नहीं हो जाता। फिर स्थानीयकरण एक हैक के रूप में किया जाता है, और यह स्पष्ट है कि इसे बाद में जोड़ा गया था। चिंता के कुछ विशिष्ट क्षेत्र:

  • पाठ तार (स्पष्ट रूप से)
  • संगीत और / या कथा जैसे ऑडियो क्लिप
  • पाठ पर दिए गए पाठ (जैसे एक टोकरा पर एक लेबल)
  • प्री-रेंडरेड फिल्मों में फ़्रेम में पाठ प्रस्तुत किया गया
  • विभिन्न भाषाओं के लिए फ़ॉन्ट्स / चरित्र सेट
  • आदि।

प्रारंभिक विकास चरणों में इन चुनौतियों के लिए तैयार करने के लिए कुछ अच्छे तरीके क्या हैं, इसलिए आप बहुत अधिक लागत के बिना सामने वाले को आसान बना सकते हैं?


8
मैं डॉन ऑफ डिस्कवरी खेल रहा हूं - वेनिस हाल ही में, जर्मन से अंग्रेजी में स्थानीय हुआ। यह लगभग 99% सही है। । । और हर बार एक समय में एक अक्षर में से कोई भी एक पंक्ति के लिए जर्मन बात करता है, या बिल्डिंग स्टेटस रिपोर्ट में से एक में umlauts है, या (एक बार में) मुझे सूचित किया जाता है कि मैं स्थानीय स्टोर से एक डिबग आइटम खरीद सकता हूं। आप जो भी विधि का उपयोग करते हैं, सुनिश्चित करें कि अनट्रेंडेड लाइनों का पता लगाना आसान है - अगर आपको उन्हें नेत्रहीन पढ़ना है, या गेम खेलना है और आशा है कि वे दिखाते हैं, तो आप इसे गलत कर रहे हैं।
ज़ोरबाहुत

@ZorbaTHut डिबग आइटम अनुवाद त्रुटियों की रिपोर्ट करने का एक तरीका है, या DoD डेवलपर्स ने स्थानीयकरण ग्लिट्स को पैच करने के लिए एक डीएलसी का उपयोग किया है?
दान नीली

एक नकली भाषा बनाना जो आपके प्रोग्रामर पढ़ और लिख सकते हैं, फायदेमंद हो सकता है। Google के पास "हैकर" भाषा है और फेसबुक के पास समुद्री डाकू है। डेवलपर्स के लिए इसका मज़ा है, और यह कुछ ऐसा है जिसे वे नई भाषा सीखे बिना अपने दम पर परख सकते हैं।
जॉन मैकडोनाल्ड

उपरोक्त उत्तरों को जोड़ने के लिए, मेरा सुझाव है कि आप छद्म स्थानीयकरण के दौर से गुज़रें (मूल रूप से शीर्ष उत्तर में "गायब स्थानीयकृत पाठ स्पष्ट करें" बिंदु की औपचारिक नाम और प्रक्रिया)। आप अनुवाद शुरू होने से पहले संभावित कार्यान्वयन के मुद्दों को समाप्त करने में सक्षम होंगे।
एंथनी

जवाबों:


49

मैं एक विशेषज्ञ नहीं हूँ, लेकिन यहाँ कुछ बुनियादी चीजें हैं:

सुनिश्चित करें कि आपके तार सिर्फ ASCII से अधिक संभाल सकते हैं

आपको कुछ ऐसे विशिष्ट चरित्रों की आवश्यकता है जो ASCII में फिट नहीं होते हैं और आपका स्ट्रिंग वर्ग उन पर बेहतर नहीं है। UTF-8 एक आम एन्कोडिंग है क्योंकि यह अंतरिक्ष-कुशल है। आप जो भी करते हैं, जल्दी टेस्ट करते हैं और किंक को आयरन करते हैं।

यह वास्तव में एक अच्छा स्ट्रिंग वर्ग का उपयोग करने के लिए एक अच्छा विचार है और न केवल char *हर जगह या आप दर्द की दुनिया में जा रहे हैं।

अपने फोंट मत भूलना। सुनिश्चित करें कि आपके द्वारा उपयोग किए जा रहे सभी फोंट आपके पास आवश्यक वर्ण हैं।

अपने तार को कोड से बाहर निकालें

यह सबसे महत्वपूर्ण है। सुनिश्चित करें कि आपके टेक्स्ट स्ट्रिंग्स सभी कोड के बाहर संग्रहीत हैं कुछ डेटा फ़ाइल में आप स्वैप कर सकते हैं। इसके लिए एक पाइप लाइन बिछाकर आगे की ओर एक कोर हो सकता है, लेकिन एक टन बाद में आपको बचाएगा। आप कुछ सरल एपीआई चाहते हैं ताकि किसी भी समय आपको कोड में एक स्ट्रिंग की आवश्यकता हो, यह उतना ही सरल है:

String text = Locale::getString("some unique identifier");

कोड में स्ट्रेटनिंग या निर्माण न करें

पाठ के एक टुकड़े को छोटे शब्दों से कैसे बनाया जाता है, इसके बारे में कोई धारणा नहीं बनाना महत्वपूर्ण है। यहां तक ​​कि कुछ के रूप में सहज रूप में कुछ:

String currency = Locale::getCurrencyString() + money.toString();
// creates $123

एक समस्या है क्योंकि संख्या के बाद अन्य भाषाएं मुद्रा चिह्न लगा सकती हैं। इसके बजाय, प्रारूप स्ट्रिंग्स का उपयोग करें जो स्वयं स्थानीयकृत हैं जैसे:

String format = Locale::get("currency format"); // returns "${0}" in English
String currency = String::Format(format, money.toString());

इस तरह, स्थानीय लोग प्रारूप स्ट्रिंग के भीतर शब्दों को पुनर्व्यवस्थित कर सकते हैं।

कला, विशेषकर वीडियो में दिखाई देने वाले पाठ की मात्रा कम से कम करें

कला संपत्तियों को बनाना एक घर का काम है। आपको कुछ UI तत्वों के लिए इसे कम से कम करने की आवश्यकता होगी, लेकिन यह एक परेशानी है। FMV को भारी करना एक बहुत बड़ा दर्द है क्योंकि अब आपको अपने FMV की डुप्लीकेट प्रतियों को प्रस्तुत करना और स्टोर करना होगा।

विभिन्न भाषाओं में अच्छी तरह से परीक्षण करें

अधिकांश कोडबेस में, यह सब बस कहना printf("Hi there");या loadTexture("someTexture");भूलना आसान है, जिन्हें आपके स्थानीयकरण एपीआई के माध्यम से जाने की आवश्यकता है। कोई भूल जाएगा और आप अपनी प्राथमिक भाषा में सही है, लेकिन दूसरों में गलत है। इसे खोजने का एकमात्र तरीका गैर-प्राथमिक भाषाओं में आपके परीक्षकों की परीक्षा है।

लापता स्थानीयकृत पाठ को स्पष्ट करें

आप आमतौर पर चक्र में अपने पाठ का देर से अनुवाद करते हैं, इसलिए बहुत समय तक, कुछ भाषाओं के लिए कोई डेटा नहीं होगा। यह ठीक है क्योंकि यह आपको अपनी सामग्री पर लगातार पुन: प्रकाशित होने की अनुमति देता है। नकारात्मक पक्ष यह है कि आपके लिए चीजों को याद करना और कुछ सामानों का अनुवाद करना भूल जाना आसान है।

एक सस्ती चीज जो आप कर सकते हैं गायब पाठ को बहुत स्पष्ट रूप से दिखा सकते हैं जैसे "!!! आईडी के लिए हस्तांतरण की आवश्यकता # ब्लाह ब्लाह !!!" खेल में जब यह गायब है।

अपने UI को सबसे खराब स्थिति में डिज़ाइन करें

विभिन्न भाषाओं में लंबे या छोटे शब्द होते हैं। एक यूआई जो अंग्रेजी में सुंदर दिखती है उसमें टेक्स्ट हो सकता है जो अपनी सीमाओं को पार करता है, क्रॉप हो जाता है, या लंबी भाषा में गलत तरीके से लपेटता है। आपको सबसे खराब स्थिति वाली भाषा को समायोजित करने के लिए (या अपने यूआई को कांटा करने के लिए यूआई में बदलाव करना होगा, लेकिन ऐसा शायद आप नहीं करना चाहते।)

आमतौर पर , अंग्रेजी अक्सर लोगों की सबसे छोटी भाषा होती है जो आमतौर पर स्थानीय होती है, इसलिए आपके डिजाइनर शायद अनजाने में सबसे अच्छे मामले के लिए डिजाइन कर रहे हैं। जब वे डिज़ाइन करते हैं तो अपने प्लेसहोल्डर्स के लिए अतिरिक्त लंबे टेक्स्ट का उपयोग करें। मान लें कि पाठ का कोई भी टुकड़ा अंग्रेजी में होने से लगभग 30% अधिक लंबा हो सकता है। Google अनुवाद प्लेसहोल्डर के लिए पाठ का अनुमानित टुकड़ा प्राप्त करने के लिए अच्छा हो सकता है।

अनुवाद के लिए बजट का समय

पाठ का अनुवाद आमतौर पर देर से होता है जब टीम थक जाती है और वास्तव में परवाह नहीं करती है। बहरहाल, ऐसा होने पर आपको बहुत सारे कीड़े मिलेंगे । शब्द अतीत की सीमाओं को चलाएंगे, अनुवादक गलती करेंगे, आदि मामलों को बदतर बनाने के लिए, पाठ पर पुनरावृत्ति के लिए बदलाव का समय लंबा हो सकता है यदि आपको विदेशों में लोगों को पाठ भेजना है और उनके परिवर्तनों की प्रतीक्षा करनी है। इस काम के लिए समय आवंटित करें।


4
आह, संघातिक तार। कितना अधिक कष्टप्रद है। जल्दी और आसानी से निर्माण की विविधता के लिए मूल भाषा में महान काम करता है। लेकिन फिर आप एक अलग व्याकरण के साथ एक भाषा में आते हैं और यह पूरी तरह से विफल है। अन्य सभी बिंदु भी अच्छे हैं। जर्मन में 'सेटिंग' 'आइंस्टेलुन्गेन' थी, जो ज़रूरत पड़ने पर काफी अतिरिक्त स्क्रीन स्पेस देती है।
केसी वैगनर

13

अन्य सुझावों के अलावा, एक चीज जो मैंने अतीत में की है, जो यूआई घटकों से अनुवादित पाठ रक्तस्राव को खोजने में बहुत मदद करता है, आपके खेल के लिए एक विशेष भाषा मोड है जो किसी भी स्ट्रिंग को प्रदर्शित करते समय सभी भाषाओं को देखता है। उस तार का सबसे लंबा संस्करण चुनता है। इस तरह, एक बार जब आप सभी स्ट्रिंग्स को उस मोड में फिट कर लेते हैं, तो आप जानते हैं कि आपने हर भाषा में सभी टेक्स्ट ब्लीड्स तय कर लिए हैं।


9

एक खेल को सही ढंग से स्थानीय बनाना कठिन है

आप इंटरनेट ब्राउज़ कर सकते हैं, ब्लॉग पोस्ट पढ़ सकते हैं, या स्टैकऑवरफ़्लो उत्तर दे सकते हैं; आप पारंपरिक i18n फ्रेमवर्क जैसे गेटटेक सीख सकते हैं ; अंतर्राष्ट्रीयकरण और खेल स्थानीयकरण पर विकिपीडिया पृष्ठ पढ़ें ; उत्कृष्ट Microsoft भाषा गाइड से परामर्श करें - लेकिन गेम का स्थानीयकरण वास्तव में इससे कठिन है। वास्तव में, खेल के साथ यह शायद किसी भी अन्य अनुप्रयोग या वेब-इंटरफ़ेस की तुलना में कठिन है। यह इसलिए है क्योंकि खेल बहुत अधिक गतिशील हैं, अधिक जीवंत, अधिक जीवंत (अच्छी तरह से, कम से कम अच्छे खेल हैं)।

इस बिंदु पर अधिक, निम्नलिखित कदम संभवतः लेने की आवश्यकता होगी:

सीमाओं की स्थापना।

आप एक महत्वपूर्ण निर्णय लेना चाहते हैं कि आप किन भाषाओं का समर्थन करना चाहते हैं। आपकी पसंद जितनी व्यापक होगी, भाषा के व्यवहार के बारे में उतनी अधिक धारणाएं टूटेंगी। अक्सर ये धारणाएँ हमारे दिमाग में इतनी गहराई से अंकित होती हैं, कि हम कल्पना भी नहीं कर सकते कि बिना किसी को बताए वे गलत हो सकते हैं। जो हमें अगले बिंदु पर लाता है:

आप जिस भाषा का समर्थन करना चाहते हैं, उसके लिए विशेषज्ञों को खोजें।

विशेषज्ञ का अर्थ है, जिसके पास पर्याप्त विश्लेषणात्मक कौशल और भाषा का ज्ञान है, वह आपको इंगित करने में सक्षम होगा जो एक अंग्रेजी वक्ता की धारणा है कि वह अपनी भाषा में पकड़ नहीं रखता है। फिर आपको उन धारणाओं के आसपास काम करने की रणनीति के साथ आने की आवश्यकता होगी।

एक उदाहरण के रूप में: पश्चिमी भाषाओं में हम शब्दों के बीच अतिरिक्त स्थान डालकर एक पैराग्राफ में पाठ को सही ठहराते हैं। अरबी भाषा में पाठ को शब्दों के अंदर काशिदा वर्णों को सम्मिलित करके उचित ठहराया गया है । यह इस तरह लग सकता है ।

एक और उदाहरण: रूसी में, बहुसंख्यक शब्दों के लिए 2 बहुवचन रूप हैं। इस प्रकार उदाहरण के लिए आप "1 सिक्का" / "3 सिक्के" / "5 सिक्के" को "1 монета", "3 монеты", लेकिन "5 монет" के रूप में अनुवादित करेंगे। सही बहुवचन रूप तय करने की वास्तविक प्रक्रिया इस तरह दिखती है:

function LocalRU::GetPlural(n, form0, form1, form2) {
    return (n%10) == 0 || (n%100) >= 5 && (n%100) <= 20? form0 : 
           (n%10) == 1? form1 : 
           (n%10) <= 4? form2 : form0;
}

एक संदर्भ-जागरूक अनुवाद मॉड्यूल बनाएं।

आप शायद जानते हैं कि अनुवाद हमेशा संदर्भ पर निर्भर करता है। और आप जानते हैं कि एक खेल के भीतर संदर्भ हर समय बदलता है। यदि हम इन दोनों कथनों को एक साथ रखते हैं तो क्या होगा? सामान्य तौर पर आपके अनुवाद आपके खेल की तरह गतिशील होने चाहिए।

उदाहरण के लिए, एक साधारण वाक्यांश "मैं सहमत हूं" का अनुवाद रूसी में "г согласен" / "ла согласна" / "Я согласно" में से एक के रूप में होता है, जो स्पीकर के लिंग (पुरुष / महिला / ट्रांसजेंडर | क्वीनर) पर निर्भर करता है। यदि यह आपकी संवाद पंक्तियों में से एक है, तो भाषा मॉड्यूल को आपके चरित्र के लिंग के आधार पर रन-टाइम पर संभावित अनुवादों में से एक चुनना होगा (यह मानते हुए कि आप अपने खिलाड़ियों को इस तरह का विकल्प प्रदान करते हैं)।

एक ही वाक्यांश जब जापानी में अनुवाद किया जाता है, तो फिर से अलग-अलग अनुवाद होंगे, जो स्पीकर और श्रोता के बीच संबंधों की औपचारिकता के स्तर पर निर्भर करेगा। इस प्रकार, यदि आप अपने खेल में प्रतिष्ठा, या मित्रता या श्रेष्ठता के स्तर के बारे में विचार करते हैं (कहते हैं, आपका चरित्र रूकी से सामान्य तक विकसित हो सकता है), तो आपको अनुवाद बनाते समय इसे ध्यान में रखना होगा। (वास्तव में, यह जापानी-विशिष्ट नहीं है। यहां तक ​​कि अंग्रेजी में, सेना में आप कभी नहीं कहते हैं "सर, हाँ, सर!" रैंक में आपके नीचे किसी व्यक्ति के लिए।

संदर्भ में कूदने का एक तरीका है।

आपके अनुवादकों में उस संदर्भ को देखने की क्षमता होनी चाहिए जहां एक विशेष वाक्यांश दिखाई देता है। कभी-कभी संदर्भ स्पष्ट होता है, कभी-कभी आपको कुछ सही अनुवाद करने के लिए इसे स्वयं देखना / सुनना / अनुभव करना होता है।

यहां तक ​​कि इस तरह के सरल वाक्य "यह पुस्तक नीली है।" स्पष्ट रूप से बिना मुझे नहीं किया जा सकता देख पुस्तक पर और देख जो नीले रंग की विशेष छाया यह है।

शब्द प्ले, वाक्य और अन्य भाषा-विशिष्ट तत्वों से बचें।

या हो सकता है कि टालें नहीं, लेकिन कम से कम यह ध्यान में रखने की रणनीति है कि क्या किया जाए जब वर्डप्ले का अनुवाद न किया जा सके। क्योंकि शायद यह नहीं होगा।

बहुत कम से कम आप किसी भी quests / पहेलियाँ / खेल वस्तुओं को नहीं बनाना चाहिए जो कुछ शब्दों पर भरोसा करते हैं जिनके दोहरे अर्थ हैं, या कुछ अन्य शब्दों के समान हैं। क्योंकि एक बार अनुवाद करने के बाद आप अपना खुद का खेल तोड़ देंगे। (उदाहरण के लिए, एक पुराने गेम में फॉलआउट 2 में मुख्य खोज जीईसीके नामक वस्तु को खोजने की थी; खेल के आसपास कई "गेको" राक्षस (उत्परिवर्तित छिपकली) भी थे; स्वाभाविक रूप से उन्होंने नामों की इस समानता के आसपास कई संदर्भ और quests बनाए, जो बहुत अच्छे अनुवाद किए)।

खुश हो जाओ!

खेल को स्थानीय बनाना कठिन है। लेकिन यह सभी के लिए कठिन है। यदि आप एक प्रयास करते हैं और इसे सही ढंग से करते हैं, तो यह आपके लक्षित देश में खेल आलोचकों द्वारा किसी का ध्यान नहीं जाएगा। अच्छे अनुवाद वाला खेल बाहर खड़ा होगा, और उच्च लाभ अर्जित करेगा। आखिरकार, खेल में माहौल बनाने के लिए पाठ उतना ही महत्वपूर्ण है, जितना कि ग्राफिक्स (यही कारण है कि पुराने पाठ-आधारित आरपीजी इतने डूब गए थे)।


"वर्ड प्ले से बचने" के लिए एक रचनात्मक लेखक को एक भाषा अनुवाद टीम में शामिल करना और उन्हें शाब्दिक अर्थ को संशोधित करने की अनुमति देना है। FFXIV एक अच्छा उदाहरण के रूप में अपने अंग्रेजी संस्करण के लिए असाधारण रूप से अच्छा करता है।
पैट्रिक ह्यूजेस

3

Wil Shipley ने स्थानीयकरण पर अब तक का सबसे अच्छा मार्गदर्शक है जो मैंने कभी पढ़ा है। दुर्भाग्य से यह iPhone विशिष्ट है, लेकिन एक अभी भी आमतौर पर उपयोगी जानकारी प्राप्त कर सकता है। इसके अलावा, वह संपत्ति के स्थानीयकरण और यूआई को संबोधित करता है - खेल स्थानीयकरण में बड़ी चुनौतियों में से दो मैं कल्पना कर सकता हूं।


1

हमेशा, हमेशा स्रोत भाषा को स्थानीय भाषा के रूप में मानते हैं।

इसलिए यदि आपकी सोर्स लैंग्वेज EN है तो सभी EN एसेट्स और स्ट्रिंग्स को एक अलग EN फोल्डर में रखें और वहां से ड्रैग करें।

अपने इच्छित स्थानीयकरण पाइपलाइन के माध्यम से एन संपत्ति खींचें।

यह एक आसान काम करके आप शायद 80% स्थानीयकरण मुद्दों को पकड़ लेंगे और बहुत आसान स्थानीयकरण प्रक्रिया के लिए सेट हो जाएंगे ।

मैंने कई खेलों को स्थानीयकृत किया है और हमेशा इस सोने की डली के साथ नेतृत्व करता हूं ।


1

मैं यहाँ कुछ बहुत बढ़िया युक्तियाँ देखता हूँ!

मैं सबसे आम गलतियों की सूची बनाने की कोशिश करूँगा जो आपके स्थानीयकरण को कठिन बनाने से लेकर आपके खेल को पूरी तरह से बर्बाद करने तक हो सकती हैं:

  • खेल के विकास के अंतिम चरण के रूप में स्थानीयकरण की सोच
  • स्रोत कोड से अपने पाठ स्ट्रिंग को अलग नहीं करना
  • एक वाक्य के बीच में संबंध / लाइनब्रेक।
  • यह मानते हुए कि समय और तारीखों और इकाइयों को स्थानीयकरण की आवश्यकता नहीं है
  • अनुवादकों को पर्याप्त संदर्भ सामग्री उपलब्ध नहीं कराना / उनके सवालों का जवाब नहीं देना
  • अपने खेल से सभी पाठ मानकर ASCII में होंगे
  • दृश्यों में पाठ होना
  • कठोर पाठ / यूआई बॉक्स होना
  • मान लें कि सभी भाषाओं की लंबाई अंग्रेजी के समान है
  • Google अनुवाद / मशीन अनुवाद का उपयोग करना
  • सांस्कृतिक कारकों की अनदेखी
  • स्थानीयकरण के लिए पर्याप्त बजट आवंटित नहीं करना

स्थानीयकरण को जल्द से जल्द विकास के लिए एकीकृत किया जाना चाहिए और खेल को डिजाइन करते समय आपको इसे हमेशा ध्यान में रखना चाहिए।

सही योजना और सावधानीपूर्वक बाजार अनुसंधान के साथ, आप अपने आप को बहुत परेशानी से बचाएंगे और लाइन से नीचे खर्च करेंगे।

मैं एक खेल स्थानीयकरण कंपनी का संस्थापक बन गया और हमने अपने ब्लॉग में कुछ महीने पहले स्थानीयकरण के लिए एक खेल की तैयारी को कवर किया।

यहाँ वह इन्फोग्राफिक है जो उस पोस्ट को बताता है: https://magic.piktochart.com/output/18317297-9-steps-to-ch सस्ता-game-development-with-localization

अधिक जानकारी में उन युक्तियों को शामिल करने वाली पूरी पोस्ट का लिंक इसके निचले भाग में है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.