Translations Editor, आपके सभी डिफ़ॉल्ट और अनुवाद किए गए स्ट्रिंग रिसॉर्स का एक ऐसा व्यू उपलब्ध कराता है जिसमें बदलाव किया जा सकता है.
अपने ऐप्लिकेशन का अलग-अलग भाषाओं में अनुवाद करने के बारे में जानने के लिए, अलग-अलग भाषाओं और संस्कृतियों के लिए सहायता लेख पढ़ें.
स्ट्रिंग रिसॉर्स
किसी प्रोजेक्ट के स्ट्रिंग रिसॉर्स, strings.xml फ़ाइलों में मौजूद होते हैं. आपके प्रोजेक्ट में एक डिफ़ॉल्ट strings.xml फ़ाइल होती है. इसमें आपके ऐप्लिकेशन की डिफ़ॉल्ट भाषा में स्ट्रिंग रिसॉर्स होते हैं. यह वह भाषा होती है जो आपके ऐप्लिकेशन के ज़्यादातर उपयोगकर्ता बोलते हैं. आपके पास strings.xml फ़ाइलों का अनुवाद करने का विकल्प भी है. इनमें अन्य भाषाओं के लिए स्ट्रिंग रिसॉर्स होते हैं. इनका इस्तेमाल करके, अपने ऐप्लिकेशन को अन्य भाषाओं में उपलब्ध कराया जा सकता है.
डिफ़ॉल्ट strings.xml फ़ाइल तैयार होने के बाद, खुद अनुवाद जोड़ें या किसी पेशेवर सेवा की मदद लें.
दोनों ही मामलों में, आपको Android Studio की सुविधाओं का फ़ायदा लेना चाहिए. इससे आपको स्थानीय भाषा में अनुवाद किए जा सकने वाले टेक्स्ट को मैनेज करने और उसकी जांच करने में मदद मिलेगी. अनुवाद की पेशेवर सेवाओं के बारे में जानने के लिए, अनुवाद की सेवाएं देखें.
अनुवाद एडिटर खोलना
Android Studio में, इन जगहों से अनुवाद एडिटर को ऐक्सेस किया जा सकता है.
Android व्यू से खोलना
- बाईं ओर मौजूद Project > Android पैनल में, ModuleName > res > values को चुनें.
strings.xml फ़ाइल पर राइट क्लिक करें और Open Translations Editor को चुनें.
अनुवाद एडिटर,
strings.xmlफ़ाइल से की और वैल्यू पेयर दिखाता है.
इमेज 1 में, अनुवाद करने से पहले, Translations Editor में ऐप्लिकेशन का डिफ़ॉल्ट टेक्स्ट (इस मामले में, अंग्रेज़ी) दिखाया गया है. अनुवाद की गई strings.xml फ़ाइलों का कॉन्टेंट, अनुवाद नहीं किया जा सकता कॉलम की दाईं ओर दिखेगा. इसमें हर भाषा के लिए एक कॉलम होगा, जैसा कि इमेज 2 में दिखाया गया है.
strings.xml से खोलें
Translations Editor को अपनी किसी भी strings.xml फ़ाइल से ऐक्सेस किया जा सकता है.
- बाईं ओर मौजूद Project > Android पैनल में, ModuleName > res > values को चुनें.
- strings.xml पर दो बार क्लिक करके, उसमें बदलाव करें.
- strings.xml में, सबसे ऊपर दाएं कोने में मौजूद Open editor लिंक पर क्लिक करें.
अनुवाद न की जा सकने वाली पंक्तियां कॉन्फ़िगर करना
Translations Editor में, अनुवाद नहीं किया जा सकता को चुनकर यह बताया जा सकता है कि आपको इस लाइन में मौजूद टेक्स्ट का अनुवाद नहीं करना है. ऐसा टेक्स्ट जिसे आपको अनुवाद नहीं करना है, वह प्रॉडक्ट के हिसाब से हो सकता है. जैसे, कारोबार के नाम और ट्रेडमार्क या ऐसी तकनीकी शब्दावली जिसका अनुवाद नहीं किया जा सकता.
अनुवाद नहीं किया जा सकता चुनने पर, डिफ़ॉल्ट strings.xml फ़ाइल में मौजूद संबंधित लाइन में translatable="false" जुड़ जाता है. नीचे दिए गए उदाहरण में, सबसे ऊपर की लाइन में मौजूद EasyApp का अनुवाद नहीं किया गया है, क्योंकि यह प्रॉडक्ट का नाम है.
<resources>
<string name="app_name" translatable="false">EasyApp</string>
<string name="action_settings">Settings</string>
<string name="easy_app">I am a Simple App!</string>
<string name="next_page">Next Page</string>
<string name="second_page_message">I am the Second Page!</string>
<string name="title_activity_second">SecondActivity</string>
</resources>
भाषाएं जोड़ना और मिटाना
Translations Editor, BCP 47 के साथ काम करता है. साथ ही, यह टारगेट किए गए स्थानीयकरण के लिए, भाषा और इलाके (देश) के कोड को एक ही विकल्प में जोड़ता है. स्थान-भाषा में भाषा के अलावा और भी चीज़ें शामिल होती हैं. स्थान-भाषा में, तारीख और समय, मुद्रा, और दशमलव जैसी चीज़ों के लिए, देश के हिसाब से फ़ॉर्मैटिंग शामिल होती है.
कोई भाषा जोड़ने के लिए, यह तरीका अपनाएं:
- Translations Editor में, ग्लोब आइकॉन
पर क्लिक करें. ड्रॉप-डाउन सूची से, वह भाषा चुनें जिसे आपको जोड़ना है.
नई भाषा, Translations Editor में दिखती है. साथ ही, प्रोजेक्ट में
strings.xmlफ़ाइल वाला values-* फ़ोल्डर जुड़ जाता है. उदाहरण के लिए, स्पैनिश के लिए values-es.
किसी भाषा को मिटाने के लिए, यह तरीका अपनाएं:
अनुवाद एडिटर में जाकर, किसी भाषा को मिटाया जा सकता है. इसके लिए, कॉलम में मौजूद हर वैल्यू को मिटाएं (टेक्स्ट में बदलाव करना, जोड़ना, और मिटाना देखें) या उस भाषा के लिए प्रोजेक्ट फ़ोल्डर को मिटाएं. इसके लिए, यह तरीका अपनाएं:
- बाईं ओर मौजूद Project > Android पैनल में, ModuleName > res को चुनें.
- जिस भाषा को मिटाना है उसके values-* फ़ोल्डर पर राइट क्लिक करें. उदाहरण के लिए, हिन्दी के लिए values-hi.
- फ़ोल्डर और उसकी strings.xml फ़ाइल को मिटाने के लिए, सूची में से मिटाएं को चुनें.
टेक्स्ट में बदलाव करना, जोड़ना, और मिटाना
टेक्स्ट की सेटिंग को सीधे strings.xml फ़ाइल में या Translations Editor की मदद से मैनेज किया जा सकता है. इस सेक्शन में, Translations Editor के तरीके के बारे में बताया गया है. Translations Editor में, सूची वाले व्यू या Translations Editor में सबसे नीचे मौजूद अनुवाद फ़ील्ड की मदद से, टेक्स्ट में बदलाव किया जा सकता है, उसे जोड़ा जा सकता है या मिटाया जा सकता है.
सूची दृश्य
टेक्स्ट में बदलाव करने या उसे जोड़ने के लिए, यह तरीका अपनाएं:
- उस सेल पर दो बार क्लिक करें जिसमें आपको बदलाव करना है या टेक्स्ट जोड़ना है.
- कीबोर्ड से कॉपी-पेस्ट करें या अगर आपके पास उच्चारण चिह्न वाला कीबोर्ड है, तो सीधे सूची वाले व्यू में टाइप करें.
- Tab दबाएं या कर्सर को फ़ील्ड से बाहर ले जाएं.
टेक्स्ट मिटाने के लिए, यह तरीका अपनाएं:
- उस सेल पर दो बार क्लिक करें जिसे मिटाना है.
- सूची वाले व्यू में, टेक्स्ट को चुनें और Delete दबाएं.
- Tab दबाएं या कर्सर को फ़ील्ड से बाहर ले जाएं.
अनुवाद फ़ील्ड
टेक्स्ट में बदलाव करने या उसे जोड़ने के लिए, यह तरीका अपनाएं:
- सूची वाले व्यू में, उस सेल पर एक बार क्लिक करें जिसमें आपको टेक्स्ट जोड़ना है या उसमें बदलाव करना है.
- अनुवाद फ़ील्ड में, कीबोर्ड से कॉपी-पेस्ट करें. इसके अलावा, अगर आपके पास ऐसा कीबोर्ड है जो डायक्रिटिक मार्क के साथ काम करता है, तो सीधे अनुवाद फ़ील्ड में टाइप करें.
- Tab दबाएं या कर्सर को फ़ील्ड से बाहर ले जाएं.
टेक्स्ट मिटाने के लिए, यह तरीका अपनाएं:
- उस सेल पर एक बार क्लिक करें जिसे आपको मिटाना है.
- अनुवाद फ़ील्ड में, टेक्स्ट चुनें और मिटाएं को दबाएं.
कुंजियां जोड़ना और मिटाना
Translations Editor में, कुंजी कॉलम में आपकी strings.xml फ़ाइलों में मौजूद हर डेटा आइटम के लिए यूनीक आइडेंटिफ़ायर की सूची होती है. अनुवाद एडिटर की मदद से, कुंजियां जोड़ी और मिटाई जा सकती हैं. जब किसी कुंजी को मिटाया जाता है, तो Translations Editor उसे और उससे जुड़े सभी अनुवादों को मिटा देता है. अनुवाद एडिटर, किसी कुंजी को मिटाने के लिए, सुरक्षित तरीके से मिटाने की सुविधा का इस्तेमाल करता है. इससे आपको पता चलता है कि कुंजी के टेक्स्ट का इस्तेमाल कहीं और किया गया है या नहीं. साथ ही, कुंजी को मिटाने से पहले, आपको ज़रूरी बदलाव करने का मौका मिलता है. सुरक्षित तरीके से मिटाने की सुविधा, यह पक्का करती है कि कुंजी मिटाने के बाद भी आपका कोड कंपाइल हो.
कोई कुंजी जोड़ने के लिए, यह तरीका अपनाएं:
- Translations Editor में, कुंजी जोड़ें
पर क्लिक करें. डायलॉग बॉक्स में, कुंजी का नाम, डिफ़ॉल्ट वैल्यू, और डिफ़ॉल्ट strings.xml फ़ाइल की जगह की जानकारी डालें.
तीसरी इमेज. कुंजी जोड़ें
कुंजी मिटाने के लिए, यह तरीका अपनाएं:
- Translations Editor में, वह कुंजी चुनें जिसे आपको मिटाना है.
- कुंजियां हटाएं
पर क्लिक करें. Delete डायलॉग में, तय करें कि आपको सुरक्षित तरीके से मिटाना है या नहीं. साथ ही, यह भी तय करें कि आपको टिप्पणियों और स्ट्रिंग में खोजना है या नहीं. इसके बाद, OK पर क्लिक करें.
चौथी इमेज. मिटाने का डायलॉग बॉक्स अगर मिटाई गई कुंजी के कोई रेफ़रंस (इस्तेमाल) नहीं हैं या सभी रेफ़रंस सुरक्षित तरीके से छोटा किए जा सकते हैं, तो कुंजी मिटा दी जाती है. ऐसा न करने पर, Translations Editor, इस्तेमाल का पता चला डायलॉग दिखाता है. इसमें, पता चली समस्याओं की जानकारी होती है.
पांचवीं इमेज. इस्तेमाल की जानकारी देने वाला डायलॉग बॉक्स इस्तेमाल देखें को चुनकर, यह देखें कि क्या मिटाया जाएगा. Find Safe Delete Conflicts डायलॉग बॉक्स में, वे सभी इस्तेमाल दिखाए जाते हैं जिन्हें मिटाना सुरक्षित नहीं है. इससे आपको अपने कोड में बदलाव करने में मदद मिलती है.
छठी इमेज. असुरक्षित इस्तेमाल कॉन्टेक्स्ट मेन्यू देखने के लिए, किसी इस्तेमाल पर राइट क्लिक करें और सोर्स पर जाएं को चुनें, ताकि आप ज़रूरी बदलाव कर सकें.
Find Safe Delete Conflicts पैनल में, Rerun Safe Delete को चुनें. इससे यह पक्का किया जा सकेगा कि कोई अन्य इस्तेमाल ऐसा न हो जिस पर ध्यान देने की ज़रूरत हो.
इस्तेमाल किए गए कोड को हटाने के बाद, कुंजी को मिटाने के लिए Do Refactor पर क्लिक करें.
गड़बड़ियां ठीक करें
सातवीं इमेज में, Translations Editor दिखाया गया है. इसमें अंग्रेज़ी, फ़्रेंच, और स्पैनिश strings.xml फ़ाइलों का कॉन्टेंट दिख रहा है. लाल रंग का टेक्स्ट उन लाइनों को दिखाता है
जिनमें गड़बड़ियां हैं.
किसी गड़बड़ी को ठीक करने के लिए, लाल रंग के टेक्स्ट पर कर्सर घुमाएं. इससे आपको समस्या और उसके समाधान की जानकारी दिखेगी.
Translations Editor में बदलाव करने पर, strings.xml फ़ाइलें आपके बदलावों के साथ अपडेट हो जाती हैं. जब किसी strings.xml फ़ाइल में बदलाव किए जाते हैं, तो Translations Editor में मौजूद उससे जुड़ा कॉलम, आपके बदलावों के साथ अपडेट हो जाता है.
Translations Editor में सुधार के उदाहरण:
- सातवीं इमेज में दिखाया गया है कि app_name लाइन में, अनुवाद नहीं किया जा सकता को चुना गया है. हालांकि, स्पैनिश भाषा में अनुवाद दिया गया है. गड़बड़ी को ठीक करने के लिए, स्पैनिश अनुवाद को मिटाएं.
- सातवीं इमेज में दिखाया गया है कि next_page लाइन का फ़्रेंच अनुवाद मौजूद नहीं है. गड़बड़ी को ठीक करने के लिए, अपने कीबोर्ड का इस्तेमाल करके सेल में Page Suivante को कॉपी करें. कीबोर्ड से कॉपी-पेस्ट करने पर, टेक्स्ट के साथ-साथ डायक्रिटिक मार्क भी सेल में कॉपी हो जाते हैं.
स्थानीय भाषा में अनुवाद किए जा सकने वाले टेक्स्ट को मैनेज करना और उसकी जांच करना
Android प्लैटफ़ॉर्म और Android Studio में कई सुविधाएं मिलती हैं. इनकी मदद से, ऐप्लिकेशन के टेक्स्ट को स्थानीय भाषा में मैनेज और टेस्ट किया जा सकता है. इन सुविधाओं में ऐसे विकल्प होते हैं जिनकी मदद से, दाईं से बाईं ओर लिखी जाने वाली (आरटीएल) स्क्रिप्ट, जैसे कि ऐरेबिक या हीब्रू से जुड़ी समस्याओं को हल किया जा सकता है. स्थानीय भाषा में अनुवाद किए जा सकने वाले टेक्स्ट की जांच करने से, यूज़र इंटरफ़ेस (यूआई) के टेक्स्ट और उसके लेआउट में बदलाव किए जा सकते हैं. ऐसा, सोर्स रिपॉज़िटरी में मैसेज को कमिट करने से पहले किया जा सकता है, ताकि उन्हें बाद में अनुवाद के लिए भेजा जा सके.
दाएं से बाएं लिखी जाने वाली भाषाओं के लिए सहायता
Jetpack Compose, दाईं से बाईं ओर (आरटीएल) वाले लेआउट को नेटिव तौर पर मैनेज करता है. लेआउट मॉडिफ़ायर और एपीआई, left और right जैसे ऐब्सलूट डायरेक्शन के बजाय, start और end जैसे डायरेक्शनल कॉन्सेप्ट के हिसाब से बनाए जाते हैं. जब सिस्टम की भाषा को आरटीएल लोकेल में बदला जाता है, तो Compose इन लेआउट को आपके लिए अपने-आप मिरर कर देता है.
आपका ऐप्लिकेशन, दाएं से बाएं लिखे जाने वाले टेक्स्ट की स्थान-भाषा की पहचान कर सके और इस मिररिंग को ट्रिगर कर सके, इसके लिए आपको अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल का इस्तेमाल करके शामिल होना होगा.
आरटीएल की सुविधा चालू करने के लिए, यह तरीका अपनाएं:
- अपनी
AndroidManifest.xmlफ़ाइल खोलें. <application>एलिमेंट मेंandroid:supportsRtl="true"एट्रिब्यूट जोड़ें:
<manifest ... >
<application
...
android:supportsRtl="true">
</application>
</manifest>
Compose, टेक्स्ट लेआउट, मिररिंग, और कस्टम आरटीएल कॉन्फ़िगरेशन को कैसे मैनेज करता है, इस बारे में ज़्यादा जानने के लिए, आरटीएल भाषाओं के साथ काम करना लेख पढ़ें.
टेक्स्ट की दिशा को मैन्युअल तरीके से सेट करना
Jetpack Compose में, लेआउट या टेक्स्ट की दिशाओं को ज़बरदस्ती लागू करने के लिए, विज़ुअल प्रॉपर्टी विंडो का इस्तेमाल नहीं किया जाता. Compose, सिस्टम की भाषा के आधार पर आरटीएल मिररिंग को अपने-आप मैनेज करता है.
हालांकि, अगर आपको किसी खास टेक्स्ट एलिमेंट के लिए, टेक्स्ट की दिशा को मैन्युअल तरीके से बदलना है (उदाहरण के लिए, आरटीएल लेआउट में एलटीआर स्ट्रिंग दिखाना), तो TextStyle में TextDirection ऑब्जेक्ट पास किया जा सकता है.
इस्तेमाल की जा सकने वाली वैल्यू में ये शामिल हैं:
TextDirection.Content: (Default): यह टेक्स्ट की दिशा को पहले स्ट्रॉन्ग डायरेक्शनल वर्ण से तय करता है.TextDirection.Ltr: इससे टेक्स्ट को बाएं से दाएं लिखने के लिए मजबूर किया जाता है.TextDirection.Rtl: इससे टेक्स्ट को दाएं से बाएं लिखने के लिए सेट किया जाता है.
Compose में टेक्स्ट को स्टाइल करने और टेक्स्ट के लिए मैन्युअल तरीके से दिशा-निर्देश कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, टेक्स्ट को स्टाइल करना लेख पढ़ें.
अपने ऐप्लिकेशन में स्थानीय भाषा में स्ट्रिंग इस्तेमाल करना
अनुवाद एडिटर का इस्तेमाल करके स्ट्रिंग जोड़ने और उनका अनुवाद करने के बाद, आपकी res/values/strings.xml फ़ाइलें अपने-आप अपडेट हो जाती हैं. साथ ही, स्थानीय भाषा में उपलब्ध संसाधनों को सीधे अपने यूज़र इंटरफ़ेस (यूआई) में इस्तेमाल किया जा सकता है.
स्थानीय भाषा में टेक्स्ट दिखाने, आरटीएल को नेटिव तौर पर मैनेज करने, और अलग-अलग भाषाओं और स्यूडोलोकेल की जांच करने के लिए @Preview का इस्तेमाल करने का तरीका जानने के लिए, Compose में मौजूद रिसॉर्स का स्ट्रिंग सेक्शन देखें.
Pseudolocales
स्यूडोलोकेल, एक सिम्युलेटेड लोकेल है. इसे उन भाषाओं की विशेषताओं को समझने के लिए डिज़ाइन किया गया है जिनकी वजह से ऐप्लिकेशन का अनुवाद करते समय यूज़र इंटरफ़ेस (यूआई), लेआउट, आरटीएल, और अनुवाद से जुड़ी अन्य समस्याएं आती हैं. स्यूडोलोकेल, स्थानीय भाषा में अनुवाद किए जा सकने वाले सभी मैसेज के लिए, तुरंत और अपने-आप अनुवाद उपलब्ध कराते हैं. ये अनुवाद अंग्रेज़ी में पढ़े जा सकते हैं. इससे आपको अपने सोर्स कोड में ऐसे मैसेज पकड़ने में मदद मिलती है जिनका अनुवाद नहीं किया जा सकता.
स्यूडोलोकेल इस्तेमाल करने के तरीके के बारे में जानने के लिए, स्यूडोलोकेल की मदद से अपने ऐप्लिकेशन की जांच करना लेख पढ़ें.