2011-06-07 11 views
6

क्या हाइबरनेट वैधकर्ता अंतर्राष्ट्रीयकरण का समर्थन करता है। मैंने जार देखा और मैं विभिन्न प्रमाणीकरण मैसेज.प्रोपर्टीज फ़ाइल देख सकता था।हाइबरनेट मान्यताओं में अंतर्राष्ट्रीयकरण

क्या हम अपना खुद का कस्टम त्रुटि संदेश बना सकते हैं जिसे अंतर्राष्ट्रीयकृत किया जाएगा? मैं हाइबरनेट मान्यताओं में डिफ़ॉल्ट रूप से प्रदान किए गए त्रुटि संदेशों का उपयोग नहीं करना चाहता हूं।

हमें अपने स्वयं के कस्टम संदेश का उपयोग करने की आवश्यकता है और उन्हें अंतर्राष्ट्रीयकृत किया जाना चाहिए।

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

क्या हम कुछ और भाषाओं को जोड़ सकते हैं उदा। स्पेनिश, पुर्तगाली आदि?

उत्तर

6

आई 18 एन बीन सत्यापन विनिर्देश का अभिन्न हिस्सा है।

डिफ़ॉल्ट संदेश द्वारा "प्रमाणीकरण संदेश" नामक संसाधन बंडल से पुनर्प्राप्त किया जाता है। तो बस इस बंडल (उदा। ValidationMessages.properties) को उस भाषा के लिए प्रदान करें जो आपको हाइबरनेट वैलिडेटर (जिसे बंडल से पुनर्प्राप्त किया जाता है "से डिफ़ॉल्ट संदेशों को ओवरराइड करने की आवश्यकता है (org.hibernate.validator.ValidationMessages")।

आपके द्वारा उल्लिखित भाषाओं के अलावा हाइबरनेट वैलिडेटर 4.2 चीनी (HV-359) और स्पेनिश (HV-483) संदेश प्रदान करेगा।

यदि आप फ़ाइल आधारित संसाधन बंडलों के साथ काम नहीं करना चाहते हैं तो आप भी अपना MessageInterpolator या ResourceBundleLocator कार्यान्वयन प्रदान कर सकते हैं।

का उपयोग हाइबरनेट सत्यापनकर्ता के PlatformResourceBundleLocator यह भी "ValidationMessages" इस तरह के अलावा अन्य नामों के साथ बंडलों उपयोग करना संभव है:

Validation 
    .byProvider(HibernateValidator.class) 
    .configure() 
    .messageInterpolator(
     new ResourceBundleMessageInterpolator(
      new PlatformResourceBundleLocator("com.mycompany.Messages"))) 
    .buildValidatorFactory() 
    .getValidator();` 
+0

हाय। उत्तर के लिए धन्यवाद। मैं हाइबरनेट मान्यताओं से डिफ़ॉल्ट संदेशों को ओवरराइड कर सकता था। लेकिन इसके लिए काम करने के लिए मुझे क्लासपाथ (डिफ़ॉल्ट पैकेज) में अपनी सत्यापन मैसेज गुण फ़ाइलों को रखना पड़ा। अगर मैं इसे किसी अन्य पैकेज में डालता हूं, तो यह मेरे संदेश नहीं उठा रहा था लेकिन डिफ़ॉल्ट संदेश। क्या कोई तरीका है कि हम कस्टम पैकेजिंग मैसेज प्रॉपर्टी फाइलों को अन्य पैकेजों में डाल सकते हैं और फिर भी इसे उठा सकते हैं। – ashishjmeshram

+0

@ आशीष मैंने अन्य बंडल नामों का उपयोग करने के तरीके पर उत्तर अपडेट किया। – Gunnar

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