Add gendered string variant files

This commit is contained in:
MM20
2025-11-24 21:41:13 +01:00
parent cc71df8a51
commit 9f5cee9fdb
35 changed files with 218 additions and 63 deletions

View File

@@ -13,6 +13,7 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalResources
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.capitalize
import androidx.core.app.GrammaticalInflectionManagerCompat
import androidx.core.net.toUri
import androidx.core.os.LocaleListCompat
@@ -53,7 +54,11 @@ fun LocaleSettingsScreen() {
Preference(
icon = R.drawable.flag_24px,
title = stringResource(R.string.preference_language),
summary = if (language == null) stringResource(R.string.preference_value_system_default) else language.getDisplayName(language),
summary = if (language == null) {
stringResource(R.string.preference_value_system_default)
} else {
language.getDisplayName(language).replaceFirstChar { it.uppercase(language) }
},
enabled = isAtLeastApiLevel(33),
onClick = {
context.tryStartActivity(
@@ -63,26 +68,33 @@ fun LocaleSettingsScreen() {
)
}
)
ListPreference(
icon = R.drawable.wc_24px,
title = "Form of address",
value = GrammaticalInflectionManagerCompat.getApplicationGrammaticalGender(context).let {
if (it == GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_NOT_SPECIFIED) {
GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_NEUTRAL
} else {
it
}
},
onValueChanged = {
GrammaticalInflectionManagerCompat.setRequestedApplicationGrammaticalGender(context, it)
},
enabled = isAtLeastApiLevel(34),
items = listOf(
"Neutral" to GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_NEUTRAL,
"Feminine" to GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_FEMININE,
"Masculine" to GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_MASCULINE,
if (listOf("fr").contains(LocalResources.current.configuration?.locales[0]?.language)) {
ListPreference(
icon = R.drawable.wc_24px,
title = stringResource(R.string.preference_form_of_address),
value = GrammaticalInflectionManagerCompat.getApplicationGrammaticalGender(
context
).let {
if (it == GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_NOT_SPECIFIED) {
GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_NEUTRAL
} else {
it
}
},
onValueChanged = {
GrammaticalInflectionManagerCompat.setRequestedApplicationGrammaticalGender(
context,
it
)
},
enabled = isAtLeastApiLevel(34),
items = listOf(
stringResource(R.string.preference_form_of_address_neutral) to GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_NEUTRAL,
stringResource(R.string.preference_form_of_address_fem) to GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_FEMININE,
stringResource(R.string.preference_form_of_address_masc) to GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_MASCULINE,
)
)
)
}
ListPreference(
icon = R.drawable.schedule_24px,
title = stringResource(R.string.preference_clock_widget_time_format),

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -1,2 +0,0 @@
<resources>
</resources>

View File

@@ -1,2 +0,0 @@
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="request_permission_message"><b>%1$s</b> pretende aceder aos dados de <b>%2$s</b>.</string>
<string name="request_permission_deny_button">Recusar</string>
<string name="request_permission_allow_button">Permitir</string>
</resources>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="request_permission_message"><b>%1$s</b> pretende aceder aos dados de <b>%2$s</b>.</string>
<string name="request_permission_deny_button">Recusar</string>
<string name="request_permission_allow_button">Permitir</string>
</resources>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="request_permission_message"><b>%1$s</b> pretende aceder aos dados de <b>%2$s</b>.</string>
<string name="request_permission_deny_button">Recusar</string>
<string name="request_permission_allow_button">Permitir</string>
</resources>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="request_permission_message"><b>%1$s</b> pretende aceder aos dados de <b>%2$s</b>.</string>
<string name="request_permission_deny_button">Recusar</string>
<string name="request_permission_allow_button">Permitir</string>
</resources>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="request_permission_message"><b>%1$s</b> pretende aceder aos dados de <b>%2$s</b>.</string>
<string name="request_permission_deny_button">Recusar</string>
<string name="request_permission_allow_button">Permitir</string>
</resources>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="request_permission_message"><b>%1$s</b> pretende aceder aos dados de <b>%2$s</b>.</string>
<string name="request_permission_deny_button">Recusar</string>
<string name="request_permission_allow_button">Permitir</string>
</resources>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="request_permission_message"><b>%1$s</b> pretende aceder aos dados de <b>%2$s</b>.</string>
<string name="request_permission_deny_button">Recusar</string>
<string name="request_permission_allow_button">Permitir</string>
</resources>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="request_permission_message"><b>%1$s</b> pretende aceder aos dados de <b>%2$s</b>.</string>
<string name="request_permission_deny_button">Recusar</string>
<string name="request_permission_allow_button">Permitir</string>
</resources>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="request_permission_message"><b>%1$s</b> pretende aceder aos dados de <b>%2$s</b>.</string>
<string name="request_permission_deny_button">Recusar</string>
<string name="request_permission_allow_button">Permitir</string>
</resources>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="request_permission_message"><b>%1$s</b> pretende aceder aos dados de <b>%2$s</b>.</string>
<string name="request_permission_deny_button">Recusar</string>
<string name="request_permission_allow_button">Permitir</string>
</resources>

View File

@@ -1059,4 +1059,8 @@
<string name="preference_screen_locale_summary">Language, units, time format</string>
<string name="preference_language">Language</string>
<string name="preference_value_system_default">System default</string>
<string name="preference_form_of_address">Form of address</string>
<string name="preference_form_of_address_neutral">Neutral</string>
<string name="preference_form_of_address_fem">Feminine</string>
<string name="preference_form_of_address_masc">Masculine</string>
</resources>

View File

@@ -5,45 +5,74 @@ files:
type: android
languages_mapping:
android_code:
ar: ar # Arabic
az: az # Azerbaijani
eu: eu # Basque
be: be # Belarusian
bn: bn # Bengali
ca: ca # Catalan
zh-CN: zh-rCN # Chinese Simplified
zh-TW: zh-rTW # Chinese Traditional
cs: cs # Czech
da: da # Danish
nl: nl # Dutch, Netherlands
eo: eo # Esperanto
fi: fi # Finnish
fr: fr # French, France
fr-fem: fr-feminine # French (feminine)
fr-masc: fr-masculine # French (masculine)
de: de # German, Germany
el: el # Greek
he: iw # Hebrew
hu: hu # Hungarian
id: in # Indonesian
it: it # Italian, Italy
ja: ja # Japanese
ko: ko # Korean
lt: lt # Lithuanian
ms: ms # Malay
nb: nb # Norwegian Bokmal
fa: fa # Persian
pl: pl # Polish
pt-BR: pt # Portuguese, Brazil
pt-PT: pt-rPT # Portuguese, Portugal
ro: ro # Romanian
ru: ru # Russian, Russia
es-MX: es # Spanish, Mexico
sv-SE: sv # Swedish, Sweden
th: th # Thai
tr: tr # Turkish, Türkiye
uk: uk # Ukrainian
vi: vi # Vietnamese
ar: ar # Arabic
az: az # Azerbaijani
eu: eu # Basque
be: be # Belarusian
be-fem: be-feminine # Belarusian (feminine)
be-masc: be-masculine # Belarusian (masculine)
bn: bn # Bengali
ca: ca # Catalan
ca-fem: ca-feminine # Catalan (feminine)
ca-masc: ca-masculine # Catalan (masculine)
zh-CN: zh-rCN # Chinese Simplified
zh-TW: zh-rTW # Chinese Traditional
cs: cs # Czech
cs-fem: cs-feminine # Czech (feminine)
cs-masc: cs-masculine # Czech (masculine)
da: da # Danish
nl: nl # Dutch, Netherlands
eo: eo # Esperanto
fi: fi # Finnish
fr: fr # French, France
fr-fem: fr-feminine # French (feminine)
fr-masc: fr-masculine # French (masculine)
de: de # German, Germany
el: el # Greek
el-fem: el-feminine # Greek (feminine)
el-masc: el-masculine # Greek (masculine)
he: iw # Hebrew
he-fem: he-feminine # Hebrew (feminine)
he-masc: he-masculine # Hebrew (masculine)
hi: hi # Hindi
hi-fem: hi-feminine # Hindi (feminine)
hi-masc: hi-masculine # Hindi (masculine)
hu: hu # Hungarian
id: in # Indonesian
it: it # Italian, Italy
it-fem: it-feminine # Italian (feminine)
it-masc: it-masculine # Italian (masculine)
ja: ja # Japanese
ko: ko # Korean
lt: lt # Lithuanian
ms: ms # Malay
nb: nb # Norwegian Bokmal
fa: fa # Persian
pl: pl # Polish
pl-fem: pl-feminine # Polish (feminine)
pl-masc: pl-masculine # Polish (masculine)
pt-BR: pt # Portuguese, Brazil
pt-BR-fem: pt-feminine # Portuguese, Brazil (feminine)
pt-BR-masc: pt-masculine # Portuguese, Brazil (masculine)
pt-PT: pt-rPT # Portuguese, Portugal
pt-PT-fem: pt-feminine # Portuguese, Portugal (feminine)
pt-PT-masc: pt-masculine # Portuguese, Portugal (masculine)
ro: ro # Romanian
ro-fem: ro-feminine # Romanian (feminine)
ro-masc: ro-masculine # Romanian (masculine)
ru: ru # Russian, Russia
ru-fem: ru-feminine # Russian (feminine)
ru-masc: ru-masculine # Russian (masculine)
es-MX: es # Spanish, Mexico
es-MX-fem: es-feminine # Spanish, Mexico (feminine)
es-MX-masc: es-masculine # Spanish, Mexico (masculine)
sv-SE: sv # Swedish, Sweden
th: th # Thai
tr: tr # Turkish, Türkiye
uk: uk # Ukrainian
uk-fem: uk-feminine # Ukrainian (feminine)
uk-masc: uk-masculine # Ukrainian (masculine)
vi: vi # Vietnamese
- source: /core/i18n/src/main/res/values/units.xml
translation: /core/i18n/src/main/res/values-%android_code%/%original_file_name%
type: android