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.LocalContext
import androidx.compose.ui.platform.LocalResources import androidx.compose.ui.platform.LocalResources
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.capitalize
import androidx.core.app.GrammaticalInflectionManagerCompat import androidx.core.app.GrammaticalInflectionManagerCompat
import androidx.core.net.toUri import androidx.core.net.toUri
import androidx.core.os.LocaleListCompat import androidx.core.os.LocaleListCompat
@@ -53,7 +54,11 @@ fun LocaleSettingsScreen() {
Preference( Preference(
icon = R.drawable.flag_24px, icon = R.drawable.flag_24px,
title = stringResource(R.string.preference_language), 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), enabled = isAtLeastApiLevel(33),
onClick = { onClick = {
context.tryStartActivity( context.tryStartActivity(
@@ -63,26 +68,33 @@ fun LocaleSettingsScreen() {
) )
} }
) )
ListPreference( if (listOf("fr").contains(LocalResources.current.configuration?.locales[0]?.language)) {
icon = R.drawable.wc_24px, ListPreference(
title = "Form of address", icon = R.drawable.wc_24px,
value = GrammaticalInflectionManagerCompat.getApplicationGrammaticalGender(context).let { title = stringResource(R.string.preference_form_of_address),
if (it == GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_NOT_SPECIFIED) { value = GrammaticalInflectionManagerCompat.getApplicationGrammaticalGender(
GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_NEUTRAL context
} else { ).let {
it if (it == GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_NOT_SPECIFIED) {
} GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_NEUTRAL
}, } else {
onValueChanged = { it
GrammaticalInflectionManagerCompat.setRequestedApplicationGrammaticalGender(context, it) }
}, },
enabled = isAtLeastApiLevel(34), onValueChanged = {
items = listOf( GrammaticalInflectionManagerCompat.setRequestedApplicationGrammaticalGender(
"Neutral" to GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_NEUTRAL, context,
"Feminine" to GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_FEMININE, it
"Masculine" to GrammaticalInflectionManagerCompat.GRAMMATICAL_GENDER_MASCULINE, )
},
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( ListPreference(
icon = R.drawable.schedule_24px, icon = R.drawable.schedule_24px,
title = stringResource(R.string.preference_clock_widget_time_format), 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_screen_locale_summary">Language, units, time format</string>
<string name="preference_language">Language</string> <string name="preference_language">Language</string>
<string name="preference_value_system_default">System default</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> </resources>

View File

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