mirror of
https://github.com/KDE/kdeconnect-android
synced 2025-08-21 17:37:39 +00:00
Adding support for per-app language preferences on Android 13 and later
Android 13 added the ability to select languages on a per-app basis. Supporting this feature simply requires us to provide a listing of all of the locales supported by the app: https://developer.android.com/guide/topics/resources/app-languages This change adds a locales_config.xml file to list the locales and references this file in the application manifest
This commit is contained in:
parent
eb301341a5
commit
b8cbd2b382
@ -57,6 +57,7 @@
|
||||
android:allowBackup="false"
|
||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||
android:networkSecurityConfig="@xml/network_security_config"
|
||||
android:localeConfig="@xml/locales_config"
|
||||
android:theme="@style/KdeConnectTheme.NoActionBar"
|
||||
android:name="org.kde.kdeconnect.MyApplication">
|
||||
|
||||
|
@ -22,6 +22,30 @@ function import_po_files # First parameter will be a path that will contain seve
|
||||
# https://github.com/python-babel/babel/issues/566
|
||||
find "$podir" -name '*.po' -exec msgattrib --no-obsolete -o {} {} \;
|
||||
ANSI_COLORS_DISABLED=1 a2po import --ignore-fuzzy --android res/ --gettext $podir
|
||||
|
||||
# Generate the locales_config.xml
|
||||
pushd res
|
||||
echo '<?xml version="1.0" encoding="utf-8"?>' > xml/locales_config.xml
|
||||
echo '<locale-config xmlns:android="http://schemas.android.com/apk/res/android">' >> xml/locales_config.xml
|
||||
transform_locale_regex='(\w+)-r(\w+)'
|
||||
# Add en-US as the first locale so that is the fallback, and also because it won't be handled in the following loop
|
||||
echo -e '\t<locale android:name="en-US"/>' >> xml/locales_config.xml
|
||||
for i in values-*; do
|
||||
if [ -d "${i}" ]; then
|
||||
if [ -e "${i}/strings.xml" ]; then
|
||||
locale="${i:7}"
|
||||
if [[ "${locale}" =~ $transform_locale_regex ]]; then
|
||||
# Special case to turn locales like "en-rUS", "en-rGB" into "en-US" and "en-GB"
|
||||
transformed_locale="${BASH_REMATCH[1]}-${BASH_REMATCH[2]}"
|
||||
echo -e "\t<locale android:name=\"${transformed_locale}\"/>" >> xml/locales_config.xml
|
||||
else
|
||||
echo -e "\t<locale android:name=\"${locale}\"/>" >> xml/locales_config.xml
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo "</locale-config>" >> xml/locales_config.xml
|
||||
popd
|
||||
}
|
||||
|
||||
|
||||
|
50
res/xml/locales_config.xml
Normal file
50
res/xml/locales_config.xml
Normal file
@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<locale android:name="en-US"/>
|
||||
<locale android:name="ar"/>
|
||||
<locale android:name="ast"/>
|
||||
<locale android:name="az"/>
|
||||
<locale android:name="bg"/>
|
||||
<locale android:name="bs"/>
|
||||
<locale android:name="ca"/>
|
||||
<locale android:name="cs"/>
|
||||
<locale android:name="da"/>
|
||||
<locale android:name="de"/>
|
||||
<locale android:name="el"/>
|
||||
<locale android:name="en-GB"/>
|
||||
<locale android:name="es"/>
|
||||
<locale android:name="et"/>
|
||||
<locale android:name="eu"/>
|
||||
<locale android:name="fi"/>
|
||||
<locale android:name="fr"/>
|
||||
<locale android:name="gl"/>
|
||||
<locale android:name="he"/>
|
||||
<locale android:name="hu"/>
|
||||
<locale android:name="ia"/>
|
||||
<locale android:name="id"/>
|
||||
<locale android:name="in"/>
|
||||
<locale android:name="is"/>
|
||||
<locale android:name="it"/>
|
||||
<locale android:name="iw"/>
|
||||
<locale android:name="ja"/>
|
||||
<locale android:name="ka"/>
|
||||
<locale android:name="ko"/>
|
||||
<locale android:name="lt"/>
|
||||
<locale android:name="nl"/>
|
||||
<locale android:name="nn"/>
|
||||
<locale android:name="pl"/>
|
||||
<locale android:name="pt"/>
|
||||
<locale android:name="pt-BR"/>
|
||||
<locale android:name="ro"/>
|
||||
<locale android:name="ru"/>
|
||||
<locale android:name="sk"/>
|
||||
<locale android:name="sl"/>
|
||||
<locale android:name="sr"/>
|
||||
<locale android:name="sv"/>
|
||||
<locale android:name="ta"/>
|
||||
<locale android:name="tg"/>
|
||||
<locale android:name="tr"/>
|
||||
<locale android:name="uk"/>
|
||||
<locale android:name="zh-CN"/>
|
||||
<locale android:name="zh-TW"/>
|
||||
</locale-config>
|
Loading…
x
Reference in New Issue
Block a user