सभी भाषाओं में बात करें: Java अनुप्रयोगों का अंतर्राष्ट्रीयकरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

आपके Java अनुप्रयोग को मानवीय भाषा में बोलने की आवश्यकता क्यों है?

\n\n

क्या आपने कभी सोचा है कि हम जिन अनुप्रयोगों का प्रतिदिन उपयोग करते हैं - Spotify से लेकर Notion तक - वे तुरंत 'समझ' जाते हैं कि आपसे किस भाषा में बात करनी है? वे विचार नहीं पढ़ते, IP पते से अनुमान नहीं लगाते। वे अंतर्राष्ट्रीयकरण (i18n) का उपयोग करते हैं।

\n\n

Java डेवलपर के लिए, अनुप्रयोगों को बहुभाषी बनाने की क्षमता केवल एक 'विशेषता' नहीं है, बल्कि एक आवश्यक कौशल है, यदि आप वैश्विक बाजार में लक्ष्य रखते हैं। कल्पना करें: आपने कार्य प्रबंधन के लिए एक शानदार सेवा लिखी। रूस में यह सफल हुआ। लेकिन जैसे ही आप इसे जर्मनी या जापान में बेचना चाहेंगे - उपयोगकर्ता रूसी में 'कार्य बनाएं' बटन देखेंगे। और टैब बंद कर देंगे। दुखद, है ना?

\n\n

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

\n\n

अंतर्राष्ट्रीयकरण और स्थानीयकरण क्या है? भ्रमित न हों!

\n\n

अक्सर इन अवधारणाओं को मिला दिया जाता है। आइए स्पष्ट करते हैं।

\n\n
    \n
  • अंतर्राष्ट्रीयकरण (i18n) - यह अनुप्रयोग को इस तरह डिज़ाइन करने की प्रक्रिया है कि इसे कोड में बदलाव किए बिना विभिन्न भाषाओं और क्षेत्रों के अनुकूल बनाया जा सके। आप अनुवाद के लिए 'हुक' बनाते हैं।
  • \n
  • स्थानीयकरण (l10n) - यह उन 'हुक' को किसी विशिष्ट देश के लिए विशिष्ट अनुवाद, दिनांक प्रारूप, मुद्राओं और सॉर्टिंग नियमों से भरना है।
  • \n
\n\n

Java में, अंतर्राष्ट्रीयकरण के लिए पैकेज java.util के वर्ग जिम्मेदार हैं: Locale और ResourceBundle। इन्हें याद रखें - ये आपके सबसे अच्छे दोस्त हैं।

\n\n

चरण 1. Locale से परिचय - अंतर्राष्ट्रीयकरण का हृदय

\n\n

क्लास Locale एक विशिष्ट क्षेत्र (भाषा + देश) का प्रतिनिधित्व करता है। उदाहरण के लिए:

\n\n
    \n
  • Locale.US - अंग्रेजी (यूएसए)
  • \n
  • Locale.GERMANY - जर्मन (जर्मनी)
  • \n
  • new Locale("ru", "RU") - रूसी (रूस)
  • \n
\n\n

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

\n\n

वर्तमान लोकेल कैसे प्राप्त करें?

\n\n
import java.util.Locale;\n\npublic class Main {\n    public static void main(String[] args) {\n        // डिफ़ॉल्ट लोकेल (आमतौर पर सिस्टम लोकेल से मेल खाता है)\n        Locale defaultLocale = Locale.getDefault();\n        System.out.println("वर्तमान लोकेल: " + defaultLocale);\n\n        // JVM में उपलब्ध लोकेल\n        Locale[] available = Locale.getAvailableLocales();\n        System.out.println("कुल उपलब्ध: " + available.length);\n    }\n}
\n\n

आउटपुट हो सकता है, उदाहरण के लिए: वर्तमान लोकेल: ru_RU। लेकिन हम सिस्टम लोकेल पर निर्भर नहीं रहेंगे - वेब अनुप्रयोग में, इसे आमतौर पर उपयोगकर्ता का ब्राउज़र भेजता है।

\n\n

चरण 2. ResourceBundle - आपका अनुवादक

\n\n

अब सबसे दिलचस्प: अनुवाद कैसे संग्रहीत करें? Java में, इसके लिए गुण फ़ाइलों (.properties) का उपयोग किया जाता है। प्रत्येक फ़ाइल कुंजी=मान जोड़ियों का एक सेट है।

\n\n

अनुवाद फ़ाइलें बनाएँ

\n\n

निर्देशिका src/main/resources (या स्रोतों वाले फ़ोल्डर में) में तीन फ़ाइलें बनाएँ:

\n\n

1. Messages.properties (डिफ़ॉल्ट भाषा - अंग्रेजी)

\n
greeting=Hello, {0}!\nfarewell=Goodbye!\napp.title=Task Manager
\n\n

2. Messages_ru_RU.properties (रूसी)

\n
greeting=Привет, {0}!\nfarewell=До свидания!\napp.title=Менеджер задач
\n\n

3. Messages_de_DE.properties (जर्मन)

\n
greeting=Hallo, {0}!\nfarewell=Auf Wiedersehen!\napp.title=Aufgabenverwaltung
\n\n

प्रत्ययों पर ध्यान दें: _ru_RU, _de_DE। Java टेम्पलेट के अनुसार फ़ाइल ढूंढता है: बेसिक

ब्लॉग

पुस्तक अनुशंसाएँ