अनुवाद संपादक की मदद से यूज़र इंटरफ़ेस (यूआई) को स्थानीय भाषा के अनुसार बनाना

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

अपने ऐप्लिकेशन का अलग-अलग भाषाओं में अनुवाद करने के बारे में जानने के लिए, अलग-अलग भाषाओं और संस्कृतियों के साथ काम करना लेख पढ़ें.

पहली इमेज. अनुवाद एडिटर में, अनुवाद से पहले ऐप्लिकेशन का टेक्स्ट दिखाया गया है

स्ट्रिंग रिसॉर्स

किसी प्रोजेक्ट के लिए स्ट्रिंग रिसॉर्स, strings.xml फ़ाइलों में शामिल होते हैं. आपके प्रोजेक्ट में एक डिफ़ॉल्ट strings.xml फ़ाइल होती है. इसमें आपके ऐप्लिकेशन की डिफ़ॉल्ट भाषा में स्ट्रिंग रिसॉर्स होते हैं. यह वह भाषा होती है जिसे आपके ऐप्लिकेशन के ज़्यादातर उपयोगकर्ताओं के बोलने की उम्मीद होती है. आपके पास अनुवाद की गई strings.xml फ़ाइलें भी हो सकती हैं. इनमें उन भाषाओं के लिए स्ट्रिंग रिसॉर्स होते हैं जिन्हें आपको अपने ऐप्लिकेशन में शामिल करना है.

डिफ़ॉल्ट strings.xml फ़ाइल तैयार हो जाने के बाद, अनुवाद खुद जोड़े जा सकते हैं. इसके अलावा, अनुवाद करने के लिए किसी पेशेवर सेवा का इस्तेमाल किया जा सकता है. हालांकि, आपको Android Studio की सुविधाओं का इस्तेमाल करना चाहिए. इससे आपको स्थानीय भाषा में उपलब्ध कराए जा सकने वाले टेक्स्ट को मैनेज करने और उसकी जांच करने में मदद मिलेगी. पेशेवर अनुवाद सेवाओं के बारे में जानकारी पाने के लिए, अनुवाद सेवाएं लेख पढ़ें.

Translations Editor खोलना

Android Studio में, Translations Editor को इन जगहों से ऐक्सेस किया जा सकता है.

Android व्यू से खोलना

  1. बाईं ओर मौजूद Project > Android पैनल में जाकर, ModuleName > res > values को चुनें.
  2. strings.xml फ़ाइल पर राइट क्लिक करें और Open Translations Editor को चुनें.

    Translations Editor, strings.xml फ़ाइल से की और वैल्यू पेयर दिखाता है.

    ध्यान दें: strings.xml फ़ाइलों का अनुवाद करने के बाद, आपके प्रोजेक्ट में कई मिलते-जुलते values फ़ोल्डर होते हैं. इनके सफ़िक्स से भाषा का पता चलता है. जैसे, स्पैनिश के लिए values-es. आपकी डिफ़ॉल्ट strings.xml फ़ाइल हमेशा values (कोई प्रत्यय नहीं) फ़ोल्डर में होती है.

पहली इमेज में, Translations Editor में डिफ़ॉल्ट ऐप्लिकेशन टेक्स्ट (इस मामले में, अंग्रेज़ी) दिखाया गया है. यह टेक्स्ट, अनुवाद किए जाने से पहले एक सामान्य ऐप्लिकेशन के लिए है. अनुवाद की गई strings.xml फ़ाइलों का कॉन्टेंट, अनुवाद नहीं किया जा सकता कॉलम के दाईं ओर दिखेगा. हर भाषा के लिए एक कॉलम होगा. जैसा कि इमेज 2 में दिखाया गया है.

strings.xml फ़ाइल में जाकर खोलना

strings.xml फ़ाइलों में जाकर, अनुवाद एडिटर को ऐक्सेस किया जा सकता है.

  1. बाईं ओर मौजूद प्रोजेक्ट > Android पैनल में, ModuleName > res > values को चुनें.
  2. बदलाव करने के लिए, strings.xml पर डबल-क्लिक करें.
  3. strings.xml में, सबसे ऊपर दाएं कोने में मौजूद Open 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 के साथ काम करता है. यह स्थानीय भाषा और क्षेत्र (देश) के कोड को एक साथ मिलाकर, टारगेट किए गए स्थानीयकरण के लिए एक ही विकल्प बनाता है. किसी स्थान-भाषा में, भाषा के अलावा और भी चीज़ें शामिल होती हैं. किसी स्थान-भाषा में, देश के हिसाब से फ़ॉर्मैटिंग शामिल होती है. जैसे, तारीख और समय, मुद्राएं, और दशमलव.

कोई भाषा जोड़ने के लिए, यह तरीका अपनाएं:

  1. अनुवाद एडिटर में, ग्लोब आइकॉन पर क्लिक करें.
  2. ड्रॉप-डाउन सूची से, वह भाषा चुनें जिसे आपको जोड़ना है. नई भाषा, अनुवाद एडिटर में दिखती है. साथ ही, प्रोजेक्ट में `strings.xml` फ़ाइल वाला values-* फ़ोल्डर जोड़ दिया जाता है. उदाहरण के लिए, स्पैनिश के लिए values-es.

किसी भाषा को मिटाने के लिए, यह तरीका अपनाएं:

अनुवाद एडिटर में जाकर, किसी भाषा को मिटाया जा सकता है. इसके लिए, कॉलम में मौजूद हर वैल्यू को मिटाएं (टेक्स्ट में बदलाव करना, उसे जोड़ना, और मिटाना लेख पढ़ें). इसके अलावा, उस भाषा के लिए प्रोजेक्ट फ़ोल्डर को भी मिटाया जा सकता है. इसके लिए, यह तरीका अपनाएं:

  1. बाईं ओर मौजूद प्रोजेक्ट > Android पैनल में, ModuleName > res को चुनें.
  2. जिस भाषा के लिए आपको values-* फ़ोल्डर मिटाना है उस पर राइट क्लिक करें. उदाहरण के लिए, हिन्दी के लिए values-hi.
  3. फ़ोल्डर और उसकी strings.xml फ़ाइल को मिटाने के लिए, सूची से मिटाएं चुनें.

टेक्स्ट में बदलाव करना, उसे जोड़ना, और मिटाना

strings.xml फ़ाइल में जाकर या अनुवाद एडिटर का इस्तेमाल करके, टेक्स्ट सेटिंग में बदलाव किया जा सकता है. इस सेक्शन में, अनुवाद एडिटर के बारे में बताया गया है. अनुवाद एडिटर में, सूची व्यू या अनुवाद फ़ील्ड के ज़रिए टेक्स्ट में बदलाव किया जा सकता है, उसे जोड़ा जा सकता है या मिटाया जा सकता है. यह फ़ील्ड, अनुवाद एडिटर में सबसे नीचे होता है.

दूसरी इमेज. सबसे ऊपर लिस्ट व्यू और सबसे नीचे अनुवाद फ़ील्ड

सूची दृश्य

टेक्स्ट में बदलाव करने या उसे जोड़ने के लिए, यह तरीका अपनाएं:

  1. उस सेल पर दो बार क्लिक करें जिसमें आपको बदलाव करना है या टेक्स्ट जोड़ना है.
  2. कीबोर्ड से कॉपी करके चिपकाएं. इसके अलावा, अगर आपके पास ऐसा कीबोर्ड है जिसमें डायक्रिटिक मार्क की सुविधा काम करती है, तो सीधे सूची वाले व्यू में टाइप करें.
  3. Tab दबाएं या कर्सर को फ़ील्ड से बाहर ले जाएं.

टेक्स्ट मिटाने के लिए, यह तरीका अपनाएं:

  1. उस सेल पर दो बार क्लिक करें जिसे मिटाना है.
  2. सूची वाले व्यू में, टेक्स्ट को चुनें और मिटाएं दबाएं.
  3. Tab दबाएं या कर्सर को फ़ील्ड से बाहर ले जाएं.

अनुवाद फ़ील्ड

टेक्स्ट में बदलाव करने या उसे जोड़ने के लिए, यह तरीका अपनाएं:

  1. सूची वाले व्यू में, उस सेल पर एक बार क्लिक करें जिसमें आपको टेक्स्ट में बदलाव करना है या टेक्स्ट जोड़ना है.
  2. अनुवाद फ़ील्ड में, कीबोर्ड से कॉपी करके चिपकाएं. इसके अलावा, अगर आपके पास ऐसा कीबोर्ड है जो डायक्रिटिक मार्क के साथ काम करता है, तो सीधे अनुवाद फ़ील्ड में टाइप करें.
  3. Tab दबाएं या कर्सर को फ़ील्ड से बाहर ले जाएं.

टेक्स्ट मिटाने के लिए, यह तरीका अपनाएं:

  1. उस सेल पर एक बार क्लिक करें जिसे मिटाना है.
  2. अनुवाद फ़ील्ड में, टेक्स्ट को चुनें और मिटाएं दबाएं.

कुंजियां जोड़ना और मिटाना

Translations Editor में, कुंजी कॉलम में आपकी strings.xml फ़ाइलों में मौजूद हर डेटा आइटम के लिए यूनीक आइडेंटिफ़ायर की सूची दी गई होती है. Translations Editor की मदद से, कुंजियां जोड़ी और मिटाई जा सकती हैं. किसी कुंजी को मिटाने पर, Translations Editor उसे और उससे जुड़े सभी अनुवादों को मिटा देता है. Translations Editor, किसी कुंजी को मिटाने के लिए SafeDelete रिफ़ैक्टरिंग का इस्तेमाल करता है. इससे आपको यह पता चलता है कि कुंजी के टेक्स्ट का इस्तेमाल कहीं और किया गया है या नहीं. साथ ही, कुंजी को मिटाने से पहले ज़रूरी बदलाव करने का मौका मिलता है. सेफ़ डिलीट रिफ़ैक्टरिंग की मदद से यह पक्का किया जाता है कि कुंजी मिटाने के बाद भी आपका कोड कंपाइल हो.

कोई कुंजी जोड़ने के लिए, यह तरीका अपनाएं:

  1. अनुवाद एडिटर में, कुंजी जोड़ें पर क्लिक करें.
  2. डायलॉग बॉक्स में, कुंजी का नाम, डिफ़ॉल्ट वैल्यू, और डिफ़ॉल्ट strings.xml फ़ाइल की जगह डालें.

    तीसरी इमेज. कुंजी जोड़ें

किसी कुंजी को मिटाने के लिए, यह तरीका अपनाएं:

  1. Translations Editor में जाकर, वह कुंजी चुनें जिसे मिटाना है.
  2. कुंजियां हटाएं पर क्लिक करें.
  3. मिटाएं डायलॉग बॉक्स में, तय करें कि आपको सुरक्षित तरीके से मिटाना है या नहीं. साथ ही, यह तय करें कि आपको टिप्पणियों और स्ट्रिंग में खोजना है या नहीं. इसके बाद, ठीक है पर क्लिक करें.

    चौथी इमेज. डायलॉग मिटाएं

    अगर मिटाई गई कुंजी का कोई रेफ़रंस (इस्तेमाल) नहीं है या सभी रेफ़रंस को सुरक्षित तरीके से छोटा किया जा सकता है, तो कुंजी मिटा दी जाती है. ऐसा न होने पर, Translations Editor में इस्तेमाल का पता चला डायलॉग बॉक्स दिखता है. इसमें, पता लगाई गई समस्याओं के बारे में जानकारी होती है.

    पांचवीं इमेज. डायलॉग मिटाएं

  4. क्या-क्या मिटाया जाएगा, यह देखने के लिए इस्तेमाल की जानकारी देखें को चुनें. सुरक्षित तरीके से मिटाने से जुड़े टकराव ढूंढें डायलॉग बॉक्स में, उन सभी इस्तेमाल के बारे में जानकारी दिखती है जिन्हें सुरक्षित तरीके से नहीं मिटाया जा सकता. इससे आपको अपने कोड में बदलाव करने में मदद मिलती है.

    छठी इमेज. असुरक्षित इस्तेमाल

  5. संदर्भ मेन्यू दिखाने के लिए, इस्तेमाल किए गए किसी आइटम पर राइट क्लिक करें. इसके बाद, सोर्स पर जाएं को चुनें, ताकि ज़रूरी बदलाव किए जा सकें.
  6. सुरक्षित तरीके से मिटाने से जुड़ी समस्याएं ढूंढें पैनल में, सुरक्षित तरीके से मिटाने की प्रोसेस फिर से चलाएं को चुनें. इससे यह पक्का किया जा सकेगा कि किसी अन्य इस्तेमाल पर ध्यान देने की ज़रूरत नहीं है.
  7. इस्तेमाल की गई जगहों से कोड हटाने के बाद, कुंजी को मिटाने के लिए रीफ़ैक्टर करें पर क्लिक करें.

गड़बड़ियां ठीक करना

सातवीं इमेज में, अनुवाद एडिटर दिखाया गया है. इसमें अंग्रेज़ी, फ़्रेंच, और स्पैनिश strings.xml फ़ाइलों का कॉन्टेंट दिख रहा है. लाल रंग के टेक्स्ट से उन लाइनों का पता चलता है जिनमें गड़बड़ियां हैं.

सातवीं इमेज. लाल रंग का टेक्स्ट, गड़बड़ी की ऐसी स्थिति को दिखाता है जिसे ठीक करना ज़रूरी है

किसी गड़बड़ी को ठीक करने के लिए, लाल रंग के टेक्स्ट पर कर्सर घुमाएं. इससे आपको समस्या और उसे ठीक करने के तरीके के बारे में जानकारी मिलेगी.

अनुवाद एडिटर में बदलाव करने पर, आपकी strings.xml फ़ाइलों में किए गए बदलावों के हिसाब से अपडेट हो जाती हैं. किसी strings.xml फ़ाइल में बदलाव करने पर, अनुवाद एडिटर में मौजूद उससे जुड़ा कॉलम, आपके बदलावों के साथ अपडेट हो जाता है.

अनुवाद एडिटर में की गई सुधारों का उदाहरण:

  • सातवीं इमेज में दिखाया गया है कि app_name लाइन में अनुवाद नहीं किया जा सकता विकल्प चुना गया है. हालांकि, स्पैनिश में अनुवाद दिया गया है. गड़बड़ी को ठीक करने के लिए, स्पैनिश में किए गए अनुवाद को मिटाएं.
  • सातवीं इमेज में दिखाया गया है कि next_page लाइन का फ़्रेंच अनुवाद मौजूद नहीं है. गड़बड़ी को ठीक करने के लिए, अपने कीबोर्ड का इस्तेमाल करके Page Suivante को सेल में कॉपी करें. कीबोर्ड से कॉपी और चिपकाने की सुविधा का इस्तेमाल करने पर, टेक्स्ट में मौजूद डायक्रिटिक मार्क भी सेल में कॉपी हो जाते हैं.

स्थानीय भाषा में उपलब्ध कराए जा सकने वाले टेक्स्ट को मैनेज करना और उसकी जांच करना

Android प्लैटफ़ॉर्म और Android Studio, ऐप्लिकेशन के टेक्स्ट को स्थानीय भाषा में लिखने और उसकी जांच करने के लिए कई सुविधाएं देते हैं. इन सुविधाओं में ऐसे विकल्प होते हैं जिनकी मदद से, दाएं से बाएं (आरटीएल) स्क्रिप्ट वाली भाषाओं, जैसे कि अरेबिक या हिब्रू से जुड़ी समस्याओं को टारगेट किया जा सकता है. स्थानीय भाषा में उपलब्ध कराए जा सकने वाले टेक्स्ट की जांच करने से, यूज़र इंटरफ़ेस (यूआई) टेक्स्ट और उसके लेआउट में बदलाव किए जा सकते हैं. ऐसा तब किया जा सकता है, जब आपने अपने मैसेज को सोर्स रिपॉज़िटरी में सेव न किया हो. इससे बाद में, मैसेज को अनुवाद के लिए भेजा जा सकता है.

दाएं से बाएं लिखी जाने वाली भाषाओं के लिए सहायता

Jetpack Compose, दाएं से बाएं (आरटीएल) लेआउट को नेटिव तौर पर हैंडल करता है. लेआउट मॉडिफ़ायर और एपीआई, दिशा के हिसाब से काम करते हैं. जैसे, start और end. ये left और right जैसे ऐब्सलूट निर्देशों के हिसाब से काम नहीं करते. सिस्टम की भाषा को आरटीएल भाषा में बदलने पर, Compose आपके लिए इन लेआउट को अपने-आप मिरर कर देता है.

आपके ऐप्लिकेशन को आरटीएल भाषा की सेटिंग पहचानने और इस मिररिंग को ट्रिगर करने के लिए, आपको ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल का इस्तेमाल करके ऑप्ट इन करना होगा.

आरटीएल की सुविधा चालू करने के लिए, यह तरीका अपनाएं:

  1. अपनी AndroidManifest.xml फ़ाइल खोलें.
  2. <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 में टेक्स्ट को स्टाइल करने और टेक्स्ट की दिशाओं को मैन्युअल तरीके से कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, टेक्स्ट को स्टाइल करना लेख पढ़ें.

अपने ऐप्लिकेशन में स्थानीय भाषा में अनुवाद की गई स्ट्रिंग का इस्तेमाल करना

Translations Editor का इस्तेमाल करके स्ट्रिंग जोड़ने और उनका अनुवाद करने के बाद, आपकी res/values/strings.xml फ़ाइलें अपने-आप अपडेट हो जाती हैं. इसके बाद, स्थानीय भाषा में उपलब्ध संसाधनों का इस्तेमाल सीधे तौर पर अपने यूज़र इंटरफ़ेस (यूआई) में किया जा सकता है.

स्थानीय भाषा में लिखे गए टेक्स्ट को दिखाने, RTL को नेटिव तरीके से हैंडल करने, और अलग-अलग स्थानीय भाषाओं और छद्म भाषाओं की जांच करने के लिए @Preview का इस्तेमाल करने का तरीका जानने के लिए, Compose में मौजूद संसाधनों के स्ट्रिंग सेक्शन पर जाएं.

Pseudolocales

स्यूडोलोकल, एक सिम्युलेटेड लोकल है. इसे उन भाषाओं की विशेषताओं को ध्यान में रखकर बनाया गया है जिनकी वजह से, ऐप्लिकेशन का अनुवाद करते समय यूज़र इंटरफ़ेस (यूआई), लेआउट, राइट-टू-लेफ़्ट (आरटीएल) और अनुवाद से जुड़ी अन्य समस्याएं आती हैं. स्यूडोलोकल, तुरंत और अपने-आप अनुवाद उपलब्ध कराते हैं. इन्हें अंग्रेज़ी में पढ़ा जा सकता है. ये सभी स्थानीय भाषाओं में उपलब्ध मैसेज के लिए काम करते हैं. इससे आपको अपने सोर्स कोड में ऐसे मैसेज का पता लगाने में मदद मिलती है जिनका अनुवाद नहीं किया जा सकता.

स्यूडोलोकल का इस्तेमाल करने के तरीके के बारे में जानने के लिए, स्यूडोलोकल की मदद से अपने ऐप्लिकेशन की जांच करना लेख पढ़ें.

अन्य संसाधन

कॉन्टेंट देखता है