कॉन्सेप्ट और Jetpack Compose को लागू करने का तरीका
Android, कई डिवाइसों और कई इलाकों में काम करता है. ज़्यादा से ज़्यादा लोगों तक पहुंचने के लिए, पक्का करें कि आपका ऐप्लिकेशन, टेक्स्ट, ऑडियो फ़ाइलों, नंबरों, मुद्रा, और ग्राफ़िक्स को उन इलाकों के हिसाब से सही तरीके से हैंडल करे जहां आपके ऐप्लिकेशन का इस्तेमाल किया जाता है.
इस पेज पर, Android ऐप्लिकेशन को स्थानीय भाषा में उपलब्ध कराने के कुछ सबसे सही तरीके बताए गए हैं.
आपके पास Kotlin या Java प्रोग्रामिंग भाषा की जानकारी होनी चाहिए. साथ ही, आपको Android के संसाधन लोड करने, एक्सएमएल में यूज़र इंटरफ़ेस एलिमेंट के बारे में बताने, डेवलपमेंट से जुड़ी बातों (जैसे, ऐक्टिविटी लाइफ़साइकल) के बारे में पता होना चाहिए. इसके अलावा, आपको अंतरराष्ट्रीयकरण और स्थानीय भाषा में उपलब्ध कराने के सामान्य सिद्धांतों के बारे में भी पता होना चाहिए.
Android के संसाधन फ़्रेमवर्क का इस्तेमाल करके, अपने ऐप्लिकेशन के स्थानीय भाषा में उपलब्ध कराए गए पहलुओं को ऐप्लिकेशन के मुख्य फ़ंक्शन से अलग रखना एक अच्छा तरीका है.
- अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस के ज़्यादातर या सभी कॉन्टेंट को संसाधन फ़ाइलों में डालें. इसके लिए, इस पेज और ऐप्लिकेशन के संसाधनों की खास जानकारी में बताया गया तरीका अपनाएं.
- दूसरी ओर, यूज़र इंटरफ़ेस का व्यवहार, Kotlin या Java पर आधारित आपके कोड से तय होता है. उदाहरण के लिए, अगर उपयोगकर्ता ऐसा डेटा डालते हैं जिसे स्थानीय भाषा के हिसाब से अलग-अलग फ़ॉर्मैट या क्रम में लगाना होता है, तो डेटा को प्रोग्राम के ज़रिए हैंडल करने के लिए, Kotlin या Java प्रोग्रामिंग भाषा का इस्तेमाल करें. इस पेज पर, Kotlin या Java पर आधारित अपने कोड को स्थानीय भाषा में उपलब्ध कराने का तरीका नहीं बताया गया है.
अपने ऐप्लिकेशन में स्ट्रिंग को स्थानीय भाषा में उपलब्ध कराने के बारे में जानने के लिए, अलग-अलग भाषाओं और संस्कृतियों के हिसाब से बनाना लेख पढ़ें.
स्थानीय भाषा में उपलब्ध कराने के लिए संसाधनों का इस्तेमाल करना
इस सेक्शन में, डिफ़ॉल्ट संसाधन और वैकल्पिक संसाधन बनाने का तरीका बताया गया है. इसमें यह भी बताया गया है कि संसाधनों को प्राथमिकता कैसे दी जाती है और कोड में अपने संसाधनों का रेफ़रंस कैसे दिया जाता है.
डिफ़ॉल्ट संसाधन बनाना
ऐप्लिकेशन का डिफ़ॉल्ट टेक्स्ट, res/values/strings.xml में डालें. इन स्ट्रिंग के लिए, डिफ़ॉल्ट भाषा का इस्तेमाल करें. यह वह भाषा है जिसे आपके ऐप्लिकेशन के ज़्यादातर उपयोगकर्ता बोलते हैं.
डिफ़ॉल्ट संसाधन सेट में, डिफ़ॉल्ट ड्रॉएबल और लेआउट भी शामिल होते हैं. इसमें, अन्य तरह के संसाधन भी शामिल हो सकते हैं. जैसे, ऐनिमेशन. ये संसाधन, इन डायरेक्ट्री में जाते हैं:
res/drawable/: यह डायरेक्ट्री ज़रूरी है. इसमें कम से कम एक ग्राफ़िक फ़ाइल होनी चाहिए. यह फ़ाइल, Google Play पर ऐप्लिकेशन के आइकॉन के लिए होती हैres/layout/: यह डायरेक्ट्री ज़रूरी है. इसमें एक एक्सएमएल फ़ाइल होनी चाहिए, जो डिफ़ॉल्ट लेआउट तय करती हैres/anim/: यह डायरेक्ट्री तब ज़रूरी है, जब आपके पासres/anim-<qualifiers>फ़ोल्डर होंres/xml/: यह डायरेक्ट्री तब ज़रूरी है, जब आपके पासres/xml-<qualifiers>फ़ोल्डर होंres/raw/: यह डायरेक्ट्री तब ज़रूरी है, जब आपके पासres/raw-<qualifiers>फ़ोल्डर हों
अहम जानकारी: अपने कोड में, Android के किसी संसाधन के हर रेफ़रंस की जांच करें. पक्का करें कि हर रेफ़रंस के लिए, डिफ़ॉल्ट संसाधन तय किया गया हो. यह भी पक्का करें कि डिफ़ॉल्ट स्ट्रिंग फ़ाइल पूरी हो. स्थानीय भाषा में उपलब्ध कराई गई स्ट्रिंग फ़ाइल में, स्ट्रिंग का सबसेट शामिल हो सकता है. हालांकि, डिफ़ॉल्ट स्ट्रिंग फ़ाइल में सभी स्ट्रिंग शामिल होनी चाहिए.
स्थानीय भाषा में उपलब्ध कराने से जुड़े सुझाव
अपने ऐप्लिकेशन को स्थानीय भाषा में उपलब्ध कराते समय, इन सुझावों को फ़ॉलो करें.
ज़रूरत के मुताबिक लेआउट डिज़ाइन करना
अगर आपको किसी भाषा के हिसाब से लेआउट को फिर से व्यवस्थित करना है, तो उस भाषा के लिए कोई वैकल्पिक लेआउट बनाया जा सकता है. जैसे, जर्मन भाषा के लेआउट के लिए res/layout-de/main.xml बनाया जा सकता है. हालांकि, ऐसा करने से आपके ऐप्लिकेशन को बनाए रखना मुश्किल हो सकता है. इसलिए, एक ऐसा लेआउट बनाना बेहतर होता है जो ज़्यादा फ़्लेक्सिबल हो.
एक और आम स्थिति यह है कि किसी भाषा के लेआउट में कुछ अलग चीज़ें शामिल करनी पड़ सकती हैं. उदाहरण के लिए, हो सकता है कि जापानी भाषा में ऐप्लिकेशन चलाने पर, संपर्क फ़ॉर्म में नाम के दो फ़ील्ड दिखें. वहीं, किसी दूसरी भाषा में ऐप्लिकेशन चलाने पर, नाम के तीन फ़ील्ड दिखें. इसे इन दो तरीकों से हैंडल किया जा सकता है:
- एक ऐसा लेआउट बनाएं जिसमें एक ऐसा फ़ील्ड हो जिसे भाषा के हिसाब से प्रोग्राम के ज़रिए चालू या बंद किया जा सके.
- मुख्य लेआउट में एक और लेआउट शामिल करें. इसमें, बदलाव किया जा सकने वाला फ़ील्ड शामिल हो. दूसरे लेआउट में, अलग-अलग भाषाओं के लिए अलग-अलग कॉन्फ़िगरेशन हो सकते हैं.
स्थानीय भाषा की जानकारी मैन्युअल तरीके से देखने के लिए, Android के कॉन्टेक्स्ट ऑब्जेक्ट का इस्तेमाल करना
स्थानीय भाषा की जानकारी देखने के लिए, Android के Context ऑब्जेक्ट
का इस्तेमाल किया जा सकता है. इसकी जानकारी, यहां दिए गए उदाहरण में दी गई है:
Kotlin
val primaryLocale: Locale = context.resources.configuration.locales[0] val locale: String = primaryLocale.displayName
Java
Locale primaryLocale = context.getResources().getConfiguration().getLocales().get(0); String locale = primaryLocale.getDisplayName();