2009-07-16 15 views
17

मैं एक वर्ग पुस्तकालय में स्थानीयकरण करने के लिए एक बहुत ही त्वरित परिचय की जरूरतसी # कक्षा लाइब्रेरी स्थानीयकरण

मैं उपयोगकर्ता प्रसंग से वातावरण खींच में कोई दिलचस्पी नहीं है, बल्कि मैं DB में संग्रहीत उपयोगकर्ताओं है, और उनकी स्थान भी है DB में सेटअप ....

वर्ग पुस्तकालय पहले से ही DB में उपयोगकर्ता प्रोफ़ाइल से स्थान कोड खींच सकते हैं में अपने कार्यों ... अब मैं स्थान के आधार उपयोग resx शामिल करना चाहते हैं ...

मुझे इसे सही तरीके से करने के लिए कुछ चरणों की आवश्यकता है ...

और हाँ - मैंने पहले से ही इसे खोज लिया है, और कुछ शोध, लेकिन मुझे पता चलने वाले सभी ट्यूटोरियल मेरी ज़रूरतों के लिए बहुत जटिल हैं।

+0

मैं एमएसडीएन से कुछ अजीब और विदेशी दिखने वाली तकनीकों में आया ... AL का उपयोग करके ... निश्चित रूप से मैं इसे मानक दृश्य स्टूडियो का उपयोग करके पूरा कर सकता हूं? –

उत्तर

21

दुर्भाग्यवश, यह विषय बहुत जटिल है। ;) मुझे पता है, मैंने भी शोध किया है।

आप हालांकि शुरू करने के लिए,

  1. अपने विधानसभा में एक संसाधन निर्देशिका बनाने।

  2. अंग्रेजी से शुरू करें और उस निर्देशिका में "संसाधन फ़ाइल" (.resx) जोड़ें। इसे "text.resx" जैसा कुछ नाम दें। यदि स्थानीय संसाधन नहीं मिल सकता है, तो ऐप इस फ़ाइल से बाहर निकलने के लिए डिफ़ॉल्ट होगा।

  3. अपने टेक्स्ट संसाधन जोड़ें।

  4. अन्य संसाधन फ़ाइल जोड़ें। इसे "text.es.resx" जैसे कुछ नाम दें, फ़ाइल नाम के "es" भाग को नोट करें। इस मामले में, वह स्पेनिश परिभाषित करता है। ध्यान दें कि प्रत्येक भाषा में इसकी अपनी चरित्र कोड परिभाषा होती है। इसे देखो।

  5. अपने स्पेनिश संसाधन इसमें जोड़ें।

अब हमारे पास संसाधन फाइलें हैं जो काम करने के लिए हैं, आइए कार्यान्वित करने का प्रयास करें।

संस्कृति सेट करने के लिए, इसे अपने डेटाबेस रिकॉर्ड से खींचें।

String culture = "es-MX"; // defines spanish culture 
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture); 
Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture); 

इस एप्लिकेशन को विधानसभा प्रारंभ में ही है कि अपने विधानसभा लोड हो जाने या में भी हो सकता है: तो फिर निम्न कार्य करें। तुम्हें लेने।

public string TestMessage() { 
    return Resources.Text.SomeTextValue; 
} 

टा दा:

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

ध्यान दें कि आपके पास "text.es-mx.resx" नाम की संसाधन फ़ाइलें हो सकती हैं जो मैक्सिकन स्पेनिश के लिए विशिष्ट होगी। हालांकि, यह हमेशा जरूरी नहीं है क्योंकि "es-mx" डिफ़ॉल्ट रूप से वापस आने से पहले "es" पर वापस आ जाएगा। केवल आप ही जानेंगे कि आपके संसाधनों को कितना विशिष्ट होना चाहिए।

+0

पुन: प्रयास करने के लिए अभी तक अच्छा लगता है, Resouces.Text.SomeTextValue - यह कहां से आता है, मुझे किन नामों को शामिल करने की आवश्यकता है? –

+0

बस निश्चित चरण 1. SomeTextValue के लिए पूर्ण नामस्थान होगा: MyAssemblyName.MyResourcesDirectoryName.MyResourceFile.MyTextValue। तो, मेरे उदाहरण का उपयोग करके, यह होगा: MyAssemblyName.Resources.Text.SomeTextValue। – NotMe

+1

CurrentCulture कॉल करके, सिस्टम स्वचालित रूप से यह पता लगाएगा कि text.resx या text.es.resx – NotMe

1

अपने रेक्स को उनके साथ संस्कृति (जैसे। Resource_en-GB.resx) नाम दें और संस्कृति के आधार पर क्वेरी के लिए कौन सा संसाधन चुनें।

+0

मुझे यह –

0

कोड से संसाधन फ़ाइल तक पहुंचने के लिए, आपको संसाधन फ़ाइल खोलनी होगी और फिर "एक्सेस मॉडिफायर" ड्रॉपडाउन को "सार्वजनिक" में बदलना होगा, मेरा "कोड कोड नहीं था"। उसके बाद आप इस तरह का उपयोग कर सकते हैं: Resources.FileName.ResourceName।

+1

-1: दिलचस्प तथ्य है, लेकिन सवाल का जवाब नहीं देता है। –

संबंधित मुद्दे