3 milyar insan cinsiyete dayalı diller konuşuyor: İsim, fiil, sıfat ve edat gibi dil bilgisi kategorilerinin, konuştuğunuz veya bahsettiğiniz kişilerin ve nesnelerin cinsiyetine göre değiştiği diller. Cinsiyetli dillerin çoğunda, geleneksel olarak varsayılan veya genel cinsiyet olarak eril dil bilgisi cinsiyeti kullanılır.
Kullanıcılara yanlış dil bilgisi cinsiyetiyle hitap etmek (ör. kadınları eril dil bilgisi cinsiyetiyle hitap etmek) performanslarını ve tutumlarını olumsuz yönde etkileyebilir. Buna karşılık, kullanıcının dil bilgisi açısından cinsiyetini doğru yansıtan bir kullanıcı arayüzü, kullanıcı etkileşimini artırabilir ve daha kişiselleştirilmiş ve doğal bir kullanıcı deneyimi sunabilir.
Cinsiyet bilgisi içeren dillerde kullanıcı merkezli bir kullanıcı arayüzü oluşturmanıza yardımcı olmak için Android 14 Grammatal Inflection API'yi kullanıma sunan bu özellik sayesinde, uygulamanızı yeniden düzenlemeden, dilbilgisi açısından cinsiyet
Dil bilgisine dayalı cinsiyet biçimi örneği
Cinsiyet belirten dillerde dil bilgisi, cinsiyet bunu İngilizcede yapabiliriz. Örneğin, İngilizce dilinde, kullanıcıya bir açıklama uygulamanızın hizmetine abone olduklarını belirtecek olursak tek bir ifade kullanabilirsiniz: "Şu podcast'e abone oldunuz:".
Fransızcada benzer bir ifade sağlamak için birkaç seçeneğiniz vardır:
- Eril çekimli biçim: "Vous êtes abonné à..." (İngilizce: "Sizi, abone olundu...")
- Dişil etki: "Vous êtes abonnée à..." (İngilizce: "Sizi, abone olundu...")
- Sabıkadan kaçınan, nötr ifadeler: "Abonnement à...activé" (İngilizce: "... aboneliği etkin")
İngilizcede olduğu gibi ilk iki seçenekte doğrudan kullanıcıya hitap edilir. Ancak, Fransızca'nın bu dil bilgisi özelliğini barındıracak herhangi bir mekanizma olmadan, yalnızca üçüncü seçeneğe sahiptir. Bu seçenek mesajın üslubunu değiştirir ve kullanıcı arayüzünde görüntülemek istediğiniz şey olmayabilir.
Bu durumlarda Grammatal Inflection API, reklamlarınızı görüntülemek için
görüntüleyenin dilbilgisi açısından cinsiyetine göre dizeler
kullanıcı arayüzünü görüntülemek. Kullanıcılara kişiselleştirilmiş reklamlar göstermek
uygulamanızda ayarlı çevirileri her biri için çevrilmiş çeviriler
dilbilgisi kurallarınıkullanın ve ardından
Hangi çevirilerin gösterileceğini ayarlamak için GrammaticalInflectionManager
API'yi kullanın
her kullanıcıya otomatik olarak sunulur.
Dil bilgisiyle ilişkili cinsiyet, birçok dilde normal isimler için de geçerlidir. teslim etmeyi amaçlar. Örneğin, Fransızcada uzanma (koltuk) kelimesi kadınken, oiseau (kuş) erildir. Kullanıcıya hitap etmek dışındaki durumlarda mevcut ICU SelectFormat API'sini kullanabilir.
API'yi uygulama
Kullanıcı dil bilgisine uygun cinsiyetini belirttikten sonra (örneğin,
uygulamanızın ayarlar bölümünden veya kullanıcı kurulumu iş akışı üzerinden)
setRequestedApplicationGrammaticalGender(int)
yöntemini kullanarak
değerini belirleyebilirsiniz.
Örneğin, bir kullanıcının tercih ettiği dil bilgisi cinsiyetini bir kadın olduğunu varsayalım. Kullanıcıdan hangi dil bilgisine sahip cinsiyeti tercih ettiğini ve ardından API'yi çağırın:
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);
Uygulamanızın manifest dosyanızı kendiniz işlemeyi seçebilirsiniz:
<activity android:name=".TestActivity"
android:configChanges="grammaticalGender"
android:exported="true">
</activity>
Uygulamanızın, mevcut kaynakta dil bilgisine göre cinsiyeti kontrol etmesi gerekiyorsa
Bunun için getApplicationGrammaticalGender()
yöntemini kullanabilirsiniz
almak için:
Kotlin
val gIM = mContext.getSystemService(GrammaticalInflectionManager::class.java) val grammaticalGender = gIM.getApplicationGrammaticalGender()
Java
GrammaticalInflectionManager gIM = mContext.getSystemService(GrammaticalInflectionManager.class); int grammaticalGender = gIM.getApplicationGrammaticalGender();
Cinsiyet bilgisi içeren diller için çeviri ekleme
Dil bilgisine uygun cinsiyet içeren diller için yerelleştirilmiş metin sağlamak amacıyla bir alternatif kaynaklar dosyasını ve dil bilgisine uygun cinsiyet niteleyicisini o dillerin yerel ayarının hemen sonrasına eklenir. Aşağıdaki tablo olası değerleri özetler:
Niteleyici | Dize değeri | Örnek (Fransızca fr ) |
---|---|---|
Kadın | feminine |
res/values-fr-feminine/strings.xml |
Erkek | masculine |
res/values-fr-masculine/strings.xml |
Cinsiyetsiz | neuter |
res/values-fr-neuter/strings.xml |
Yalnızca dil bilgisi bakımından cinsiyet çekimlerini destekleyen bu kaynak dosyalarını da kullanabilirsiniz. Tüm dizeler, varsayılan kaynakta bir değere sahip olmalıdır dosyası oluşturun. Bu varsayılan çeviri çeviri kullanılabilir olmadığında gösterilir.
Daha önce Fransızca için sağlanan örnekte nötr ifade şöyle olur:
res/values-fr/strings.xml
varsayılan kaynaklarındaki dize değeri
dosyası olarak kaydedebilirsiniz. Aşağıdaki kod snippet'leri, her kaynak dosyasının nasıl biçimlendirileceğini gösterir.
kodunu ekleyin:
Kadın
Dişil çekimli dizeyi res/values-fr-feminine/strings.xml
kaynaklar dosyasına ekleyin:
<resources> ... <string name="example_string">Vous êtes abonnée à...</string> </resources>
Erkek
Eril çekimli dizeyi res/values-fr-masculine/strings.xml
kaynak dosyasına dahil edin:
<resources> ... <string name="example_string">Vous êtes abonné à...</string> </resources>
Cinsiyetsiz
Varsayılan dizeyi res/values-fr/strings.xml
kaynakları dosyasına ekleyin:
<resources> ... <string name="example_string">Abonnement à...activé</string> </resources>