2009-08-24 16 views
10

क्या कोई मेरी मदद कर सकता है कि Win32 API (सी/सी ++) के माध्यम से विंडोज ओएस की भाषा (अंग्रेजी, चीनी आदि) कैसे प्राप्त करें ??Win32 API?

धन्यवाद, सौरभ

+0

यह सिर्फ इतना आसान नहीं है। "भाषा" जैसी कोई चीज़ नहीं है; समवर्ती उपयोग में कई लंगुग हो सकते हैं। क्या आप अधिक सटीक हो सकते हैं? युक्ति: माइकल कपलन के ब्लॉग ["सॉर्टिंग इट ऑल आउट"] पढ़ें (blogs.msdn.com/michkap/) – MSalters

+0

@MSalters आपको सीधे [प्रासंगिक आलेख] से लिंक करना चाहिए (http://blogs.msdn.com/b/ michkap/संग्रह/2005/02/01/364707.aspx)। –

+0

@SadlyNot: यह अब तक थोड़ा पुराना है (केवल एक्सपी कवर करता है, जो लगभग ईओएल है) – MSalters

उत्तर

6

आप डिफ़ॉल्ट उपयोगकर्ता का स्थान (जो मुझे लगता है कि तुम क्या पूछ रहे हैं है) GetUserDefaultLCID का उपयोग कर प्राप्त कर सकते हैं। यह आपको एक आईडी देगा जो संस्कृति को निर्धारित करने के लिए उपयोग किया जा सकता है। आईडी और संस्कृतियों का प्रतिनिधित्व करने वाली तालिका के लिए here देखें।

Vista या Windows 7 के लिए, Microsoft GetUserDefaultLocaleName की अनुशंसा करता है।

23

आप (यानी जो MUI - बहुभाषी उपयोगकर्ता इंटरफ़ेस किट - स्थापित किया गया है) के बारे में "कौन सी भाषा ओएस मेनू और संवाद में dispalyed कर रहे हैं" में पूछ रहे हैं, तो निम्न का उपयोग करें:

  • GetSystemDefaultUILanguage पाने के लिए सिस्टम की मूल भाषा,
  • GetUserDefaultUILanguage वर्तमान उपयोगकर्ता के चयन,
  • EnumUILanguages यह देखने के लिए कि कौन सी भाषाएं उपलब्ध हैं।

और जानकारी:

+3

और फिर LANGID से आईएसओ 639 प्राप्त करने के लिए LOCALE_SENGLANGUAGE के साथ GetLocaleInfo का उपयोग करें। – Yakeen

+1

मुझे संदेह है कि ओपी क्या पूछ रहा था, और मेरे मुकाबले ज्यादा व्यापक जवाब है। – Xiaofu

+0

उस पर एक और सवाल: मैं सिर्फ डेल्फी से जीत एपीआई कॉल के माध्यम से लोकेल सेटिंग्स में FIELDSEPARATOR सेट करना चाहता हूं। क्या कोई यहां मदद कर सकता है? धन्यवाद –