व्याकरण के हिसाब से लिंग के आधार पर, अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) को पसंद के मुताबिक बनाना

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

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

Android 14 में, लिंग के हिसाब से भाषाओं के लिए उपयोगकर्ता को ध्यान में रखकर बनाया गया यूज़र इंटरफ़ेस (यूआई) बनाने में मदद करने के लिए पेश है ग्रैमैटिकल इंफ़्लेक्शन एपीआई, जिससे लैंगिक जानकारी देने के लिए.

व्याकरण के हिसाब से लैंगिक जानकारी देने के उदाहरण

लिंग के आधार पर तय की गई भाषाओं में, व्याकरण के हिसाब से लैंगिक जानकारी को उसी तरह इस्तेमाल नहीं किया जा सकता अंग्रेज़ी में कर सकते हैं. उदाहरण के लिए, उपयोगकर्ता को यह बताने के लिए कि कोई मैसेज अंग्रेज़ी में लिखा गया हो है, तो आप एक वाक्यांश का इस्तेमाल कर सकते हैं: "आपने सदस्यता ली हुई है...".

फ़्रेंच में मिलता-जुलता वाक्यांश उपलब्ध कराने के लिए, कुछ विकल्प दिए गए हैं:

  • पुल्लिंग हाव-भाव: "Vous êtes abonné à..." (अंग्रेज़ी: "आप इसकी सदस्यता ली गई...")
  • स्त्रीलिंग से प्रभावित रूप: "Vous êtes abonnée à..." (अंग्रेज़ी: "आप इसकी सदस्यता ली गई...")
  • इस तरह के वाक्यांशों में बदलाव न किया गया हो: "Abonnement à...activé" (अंग्रेज़ी: "... की सदस्यता चालू की गई")

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

ऐसे मामलों में, Gagramal Inflection API का इस्तेमाल करके, डिवाइस पर कम समय में कॉन्टेंट दिखाया जा सकता है स्ट्रिंग जो दर्शक के व्याकरण के लिंग से जुड़ी होती हैं—यानी वह व्यक्ति जो यूज़र इंटरफ़ेस (यूआई) देख रही है, न कि किसके बारे में बात की जा रही है. लोगों को उनकी पसंद के हिसाब से विज्ञापन दिखाने के लिए अनुवाद करने के लिए, हर अनुवाद के लिए ऐसे अनुवाद जोड़ें जो व्याकरण के हिसाब से लिंग चुनें और फिर GrammaticalInflectionManager एपीआई की मदद से, यह तय किया जा सकता है कि कौनसे अनुवाद दिखाए जाएं एक उपयोगकर्ता के तौर पर शामिल होना चाहिए.

कई भाषाओं में, व्याकरण के हिसाब से लिंग की जानकारी, सामान्य संज्ञाओं के साथ-साथ सामान्य संज्ञाओं पर भी लागू होती है लोगों को पसंद आए. उदाहरण के लिए, फ़्रेंच में चेज़ (कुर्सी) शब्द स्त्रीलिंग है, जबकि आइसो (पक्षी) पुल्लिंग होता है. उपयोगकर्ता से संपर्क करने के अलावा, आपको मौजूदा ICU SelectFormat API का इस्तेमाल किया जा सकता है.

एपीआई को लागू करना

जब उपयोगकर्ता ने व्याकरण के हिसाब से लिंग की जानकारी दे दी हो (उदाहरण के लिए, या उपयोगकर्ता सेटअप वर्कफ़्लो के ज़रिए) लिया जाता है, तो आप को सेव करने के लिए, setRequestedApplicationGrammaticalGender(int) तरीका मान को आपके ऐप्लिकेशन के संसाधन कॉन्फ़िगरेशन में होना चाहिए.

उदाहरण के लिए, अगर आपको उपयोगकर्ता की पसंद के हिसाब से लिंग की जानकारी को स्त्रीलिंग के लिए, आपको उस उपयोगकर्ता से यह चुनने के लिए कहना होगा कि वह किस लिंग के व्याकरण को पसंद करे और फिर एपीआई को कॉल करें:

Kotlin

// Set app's grammatical gender to feminine
val gIM = mContext.getSystemService(GrammaticalInflectionManager::class.java)
gIM.setRequestedApplicationGrammaticalGender(
    Configuration.GRAMMATICAL_GENDER_FEMININE)

Java

// Set app's grammatical gender to feminine
GrammaticalInflectionManager gIM =
    mContext.getSystemService(GrammaticalInflectionManager.class);
gIM.setRequestedApplicationGrammaticalGender(
    Configuration.GRAMMATICAL_GENDER_FEMININE);

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

<activity android:name=".TestActivity"
              android:configChanges="grammaticalGender"
              android:exported="true">
</activity>

अगर आपके ऐप्लिकेशन को मौजूदा संसाधन में व्याकरण के हिसाब से लिंग की जांच करनी है कॉन्फ़िगरेशन के लिए, आप getApplicationGrammaticalGender() तरीके का इस्तेमाल कर सकते हैं इसे वापस पाने के लिए:

Kotlin

val gIM = mContext.getSystemService(GrammaticalInflectionManager::class.java)
val grammaticalGender = gIM.getApplicationGrammaticalGender()

Java

GrammaticalInflectionManager gIM =
    mContext.getSystemService(GrammaticalInflectionManager.class);
int grammaticalGender = gIM.getApplicationGrammaticalGender();

लिंग के व्याकरण के हिसाब से भाषाओं के लिए अनुवाद जोड़ें

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

क्वालिफ़ायर स्ट्रिंग मान उदाहरण (फ़्रेंच fr)
महिला feminine res/values-fr-feminine/strings.xml
पुरुष masculine res/values-fr-masculine/strings.xml
नपुंसक लिंग neuter res/values-fr-neuter/strings.xml

आपको सिर्फ़ ऐसी स्ट्रिंग शामिल करनी चाहिए जो लिंग के व्याकरण के हिसाब से सही हों इन संसाधनों फ़ाइलों को डाउनलोड करें. डिफ़ॉल्ट संसाधन में सभी स्ट्रिंग का एक मान होना चाहिए ऐसी फ़ाइल जिसमें अन्य स्थानीय जगह के मुताबिक स्ट्रिंग शामिल हैं. यह डिफ़ॉल्ट अनुवाद है लिंग के हिसाब से अनुवाद उपलब्ध न होने पर दिखाया जाता है.

पहले फ़्रेंच के लिए दिए गए उदाहरण में, न्यूट्रल वाक्यांश का इस्तेमाल यह होगा डिफ़ॉल्ट संसाधन res/values-fr/strings.xml में स्ट्रिंग का मान फ़ाइल से लिए जाते हैं. नीचे दिए गए कोड स्निपेट दिखाते हैं कि हर रिसॉर्स फ़ाइल को किस तरह फ़ॉर्मैट किया जाएगा उदाहरण के तौर पर दिए गए व्याकरण के सभी वैरिएशन को फ़्रेंच में शामिल करने के लिए:

महिला

res/values-fr-feminine/strings.xml रिसॉर्स फ़ाइल में, स्त्रीलिंग से जुड़ी स्ट्रिंग शामिल करें:

<resources>
    ...
    <string name="example_string">Vous êtes abonnée à...</string>
</resources>

पुरुष

res/values-fr-masculine/strings.xml रिसॉर्स फ़ाइल में, पुल्लिंग वाली स्ट्रिंग शामिल करें:

<resources>
    ...
    <string name="example_string">Vous êtes abonné à...</string>
</resources>

नपुंसक लिंग

res/values-fr/strings.xml संसाधन फ़ाइल में डिफ़ॉल्ट स्ट्रिंग शामिल करें:

<resources>
    ...
    <string name="example_string">Abonnement à...activé</string>
</resources>