2010-01-21 18 views
12

में डिफ़ॉल्ट लोकेल को कैसे बदलें हमारे एप्लिकेशन को ईबी-जीबी लोकेल का उपयोग करने के लिए तय किया जाना चाहिए। अभी के लिए मैंने जोड़ा है:जीडब्ल्यूटी

<extend-property name="locale" values="en_GB"/> 

लेकिन इसका मतलब है कि जीडब्ल्यूटी दोनों के लिए प्रीमिशन बनाता है। डिफ़ॉल्ट रूप से ईबी-जीबी में जीडब्ल्यूटी कैसे सेट करें? या संकलन से default को कैसे निकालें?

उत्तर

9

देखें कैसे के बारे में:

 
<set-property name="locale" value="en_GB" /> 
+0

मुझे लगता है कि आपको इसे ऊपर से उत्तरों के साथ संयोजित करने की आवश्यकता होगी। –

+0

यह काम करता है! मुझे यह विचार था। लेकिन लगता है कि कुछ गलत टाइप किया गया है। –

+4

मुझे यह कहां जोड़ना चाहिए संपत्ति? मैंने अपनी .gwt.xml फ़ाइल में कोशिश की, लेकिन यह "प्रसंस्करण तत्व 'सेट-प्रॉपर्टी' के दौरान अप्रत्याशित अपवाद" के बारे में शिकायत करता है " – raisercostin

2

this देखें।

तुम इतनी तरह मेजबान पेज में भाषा निर्दिष्ट करने के लिए ...

<meta name="gwt:property" content="locale=x_Y"> 

आप अपने खुद के संपत्ति प्रदाता लिख ​​सकता है की जरूरत है।

+0

यह 'डिफ़ॉल्ट' लोकेल को प्रतिस्थापित नहीं करेगा। यह सेट करने के बारे में है कि किस लोकेल का उपयोग करना है। मुझे 'en_GB' के रूप में bahaive के लिए' डिफ़ॉल्ट 'लोकेल की आवश्यकता है। –

+0

यदि आपने एक लोकेल निर्दिष्ट किया है (जैसा कि आपने ऊपर दिखाया है), तो इसे डिफ़ॉल्ट को प्रतिस्थापित नहीं करना चाहिए। डिफ़ॉल्ट लोकेल के बारे में क्या कहा गया है ... "com.google.gwt.i18n.I18N मॉड्यूल डिफ़ॉल्ट रूप से केवल एक लोकेल को परिभाषित करता है, जिसे डिफ़ॉल्ट कहा जाता है।यह डिफ़ॉल्ट लोकेल तब उपयोग किया जाता है जब लोकेल क्लाइंट संपत्ति परिनियोजन में निर्दिष्ट नहीं होती है। स्थानीय लोकेल का उपयोग स्थानीय रूप से इंटरफ़ेस और स्थानीयकृत संसाधन या कक्षा के बीच एक अंतिम-रिज़ॉर्ट मैच के रूप में आंतरिक रूप से किया जाता है। " –

+0

हम एक्साक्लिटी लोकेल - 'डिफ़ॉल्ट' का उपयोग करते हैं, लेकिन हम इसे एन-जीबी बल्कि एन-यूएस होना चाहते हैं। यही कारण है कि मैंने डिफ़ॉल्ट लोकेल को कॉन्फ़िगर करने के लिए कहा है। –

3

आप एनोटेशन के माध्यम से डिफ़ॉल्ट सेट कर सकते हैं: @DefaultLocale("en_GB") i18 इंटरफेस को विस्तारित इंटरफ़ेस पर, उदा। com.google.gwt.i18.client.Messages

उदाहरण के लिए:

@DefaultLocale("en_GB") 
public interface MyMessages extends com.google.gwt.i18.client.Messages { 
    ... 

मैं इस वास्तविक आपकी समस्या नहीं सुलझती, तो यकीन नहीं है, लेकिन यह डिफ़ॉल्ट सेट करने के लिए जिस तरह से लगता है। भी http://code.google.com/p/google-web-toolkit/wiki/I18nAnnotations

+0

ऐसा लगता है कि आप वास्तव में क्या देख रहे हैं। –

+0

मुझे अधिकतर अंतर्निहित सामानों के लिए इसकी आवश्यकता है। दिनांक और संख्या स्वरूपों की तरह। इसलिए इसे इंगित करने के लिए धन्यवाद, लेकिन यह मेरी समस्या का समाधान नहीं करता है। वैसे भी आपके समय के लिए धन्यवाद। –

1

Here is a better hack (दूसरा टिप्पणी देखें)।

नोट केवल इस कोड को होने

<set-property name="locale" value="en_GB" /> 

LocaleInfo.getLocaleNativeDisplayName(localeName) का कारण बनता है डिफ़ॉल्ट स्थान के लिए रिक्त स्ट्रिंग वापस जाने के लिए है।

9
<extend-property name="locale" values="sl_SI"/> 
<set-property name="locale" value="sl_SI" /> 

पहले उपलब्ध लोकेशंस के सेट में जोड़ता है।

फिर डिफ़ॉल्ट सेट करता है।

यदि डिफ़ॉल्ट रूप से जोड़े गए समान लोकेल पर सेट नहीं है, तो gwt अतिरिक्त लोकेल और डिफ़ॉल्ट लोकेल के लिए क्रमपरिवर्तन बनाएगा।

8

मैं यहां पुरातत्त्ववेत्ता खेल रहा हूं लेकिन GWT docs about internationalization के अनुसार आपको लोकेल को मजबूर करने के बजाय "लोकेल" के लिए संपत्ति फ़ॉलबैक का उपयोग करना चाहिए।

तो अपने मॉड्यूल एक्सएमएल (.gwt.xml फ़ाइल) में आप होना चाहिए:

<!-- Let say you app supports the english language, independent of country --> 
<extend-property name="locale" values="en"/> 
<!-- Now set the fallback locale so your app will be in british english by default, Sir --> 
<set-property-fallback name="locale" value="en_GB"/> 

<set-property name="locale" value="en_GB"/> केवल अपने आवेदन के स्थान के रूप में en_GB सेट हो जाएगा और अन्य स्थानों आप परिभाषित के लिए परिवर्तन नहीं बनाएगा।

उम्मीद है कि इससे मदद मिलती है।