התאמה אישית של ממשק המשתמש של האפליקציה לפי מגדר דקדוקי

3 מיליארד אנשים דוברים שפות עם מגדר: שפות שבהן קטגוריות דקדוקיות – כמו שמות עצם, פעלים, שמות תואר ומילות יחס – משתנות בהתאם למגדר של האנשים והאובייקטים שאתם מדברים אליהם או עליהם. באופן מסורתי, בשפות רבות עם מגדר נעשה שימוש במגדר grammatcal masculine כמגדר ברירת המחדל או כמגדר כללי.

שימוש במגדר הדקדוקי הלא נכון למשתמשים, למשל שימוש במגדר הדקדוקי הזכרי לנשים, עלול להשפיע לרעה על הביצועים והגישה שלהם. לעומת זאת, ממשק משתמש עם שפה שמשקפת בצורה נכונה את המגדר הדקדוקי של המשתמש יכול לשפר את המעורבות של המשתמש ולספק חוויית משתמש מותאמת אישית יותר וטבעית יותר.

כדי לעזור לך לפתח ממשק משתמש ממוקד-משתמש לשפות לפי מגדר, Android 14 מציגה את Grammatical Inflection API, שמאפשר להוסיף תמיכה דקדוק דקדוקי בלי להגדיר את האפליקציה מחדש.

דוגמה להטיה בהקשר של מגדר דקדוקי

בשפות לפי מגדר, לא ניתן להשתמש במגדר דקדוקי באותו אופן כמו אפשר לקבל אותו באנגלית. לדוגמה, באנגלית, לכתוב הודעה למשתמש שהם מנויים לשירות של האפליקציה שלכם, אפשר להשתמש במשפט אחד: "נרשמת כמנוי ל...".

יש כמה דרכים ליצור ביטוי דומה בצרפתית:

  • צורת זכר: "Vous êtes abonné à... " (אנגלית: "אתם נרשמת ל...)
  • צורת נקבה: 'Vous êtes abonnée à...' (אנגלית: "אתם נרשמת ל...)
  • ניסוח ניטרלי כדי למנוע הטיה: "Abonnement à...activé" (באנגלית: "המינוי ל ... מופעל")

בדומה לאנגלית, שתי האפשרויות הראשונות מפנות ישירות למשתמש. אבל, לפעמים ללא מנגנון כדי להתאים לתכונה דקדוקית של צרפתית, תהיה רק האפשרות השלישית, שמשנה את סגנון ההודעה שונה ממה שהייתם רוצים להציג בממשק המשתמש שלכם.

במקרים כאלה, ה-Grammatical Inflection API מפחית את המאמץ להציג מחרוזות ביחס למגדר הדקדוקי של הצופה - כלומר, לצפות בממשק המשתמש, לא על מי מדברים עליו. כדי להציג למשתמשים מודעות בהתאמה אישית תרגומים באפליקציה, להוסיף תרגומים עם היטל התאמה לכל אחד מהם מגדר דקדוקי בשפות המושפעות, ולאחר מכן להשתמש GrammaticalInflectionManager API להגדרת התרגומים שיוצגו לכל משתמש.

בשפות רבות, המגדר הדקדוקי חל גם על שמות עצם רגילים לאנשים. לדוגמה, בצרפתית המילה 'כיסאות' היא נקבה, אבל oiseau (ציפור) הוא זכר. במצבים אחרים מלבד פנייה למשתמש, יכול להשתמש ב-API הקיים של ICU SelectFormat.

הטמעת ה-API

אחרי שהמשתמש ציין את המגדר הדקדוקי שלו (לדוגמה, דרך קטע הגדרות באפליקציה או בתהליך עבודה של הגדרת משתמש), אפשר להשתמש ה-method setRequestedApplicationGrammaticalGender(int) כדי לאחסן את בהגדרת המשאבים של האפליקציה.

לדוגמה, אם אתם רוצים להגדיר את 'מגדר דקדוקי' המועדף של המשתמש בתור נשי, צריך לבקש מהמשתמש לבחור את המגדר הדקדוקי המועדף ולאחר מכן קוראים ל-API:

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>