mirror of
https://github.com/twinksoftware/Gearslip.git
synced 2026-11-10 16:02:25 +01:00
Settings has a Language row, for choosing Gearslip's language
Android 13 and later already let you pick it, but only from the system's app settings, which few people find (#51).
This commit is contained in:
1 parent
a1a7eca5cb
commit
3f25122fb6
21 files changed
+79
No files matched your search
@@ -1,6 +1,7 @@
|
||||
package app.seb3thehacker.gearslip.ui
|
||||
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.res.vectorResource
|
||||
import app.seb3thehacker.gearslip.R
|
||||
import androidx.compose.runtime.withFrameNanos
|
||||
import android.net.Uri
|
||||
@@ -136,6 +137,7 @@ fun SettingsScreen(
|
||||
icon = Icons.Filled.Star,
|
||||
trailing = { Arrow() },
|
||||
)
|
||||
LanguageRow()
|
||||
}
|
||||
SettingsSection(
|
||||
stringResource(R.string.settings_support),
|
||||
@@ -167,6 +169,35 @@ private fun Arrow() = Icon(
|
||||
tint = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||
)
|
||||
|
||||
/**
|
||||
* Android 13 and later choose an app's language in their own settings, from the languages
|
||||
* Gearslip declares; this opens that page, which few people find on their own (issue #51).
|
||||
*/
|
||||
@Composable
|
||||
private fun LanguageRow() {
|
||||
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.TIRAMISU) return
|
||||
val context = LocalContext.current
|
||||
// A new choice arrives as a configuration change, since the manifest keeps the activity.
|
||||
val chosen = remember(androidx.compose.ui.platform.LocalConfiguration.current) {
|
||||
context.getSystemService(android.app.LocaleManager::class.java)?.applicationLocales?.get(0)
|
||||
}
|
||||
SettingsDivider()
|
||||
SettingsRow(
|
||||
stringResource(R.string.settings_language),
|
||||
Modifier.clickable {
|
||||
runCatching {
|
||||
context.startActivity(
|
||||
android.content.Intent(android.provider.Settings.ACTION_APP_LOCALE_SETTINGS, Uri.fromParts("package", context.packageName, null)),
|
||||
)
|
||||
}
|
||||
},
|
||||
subtitle = chosen?.let { it.getDisplayName(it).replaceFirstChar { c -> c.titlecase(it) } }
|
||||
?: stringResource(R.string.settings_language_phone),
|
||||
icon = androidx.compose.ui.graphics.vector.ImageVector.vectorResource(R.drawable.ic_language),
|
||||
trailing = { Arrow() },
|
||||
)
|
||||
}
|
||||
|
||||
/** The setup guide replay, and where Gearslip lives outside the app. */
|
||||
@Composable
|
||||
private fun AboutSection(onReplayTutorial: () -> Unit) {
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<!-- Material Icons "language" (Apache 2.0). -->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM18.92,8h-2.95c-0.32,-1.25 -0.78,-2.45 -1.38,-3.56 1.84,0.63 3.37,1.91 4.33,3.56zM12,4.04c0.83,1.2 1.48,2.53 1.91,3.96h-3.82c0.43,-1.43 1.08,-2.76 1.91,-3.96zM4.26,14C4.1,13.36 4,12.69 4,12s0.1,-1.36 0.26,-2h3.38c-0.08,0.66 -0.14,1.32 -0.14,2 0,0.68 0.06,1.34 0.14,2L4.26,14zM5.08,16h2.95c0.32,1.25 0.78,2.45 1.38,3.56 -1.84,-0.63 -3.37,-1.9 -4.33,-3.56zM8.03,8L5.08,8c0.96,-1.66 2.49,-2.93 4.33,-3.56C8.81,5.55 8.35,6.75 8.03,8zM12,19.96c-0.83,-1.2 -1.48,-2.53 -1.91,-3.96h3.82c-0.43,1.43 -1.08,2.76 -1.91,3.96zM14.34,14L9.66,14c-0.09,-0.66 -0.16,-1.32 -0.16,-2 0,-0.68 0.07,-1.35 0.16,-2h4.68c0.09,0.65 0.16,1.32 0.16,2 0,0.68 -0.07,1.34 -0.16,2zM14.59,19.56c0.6,-1.11 1.06,-2.31 1.38,-3.56h2.95c-0.96,1.65 -2.49,2.93 -4.33,3.56zM16.36,14c0.08,-0.66 0.14,-1.32 0.14,-2 0,-0.68 -0.06,-1.34 -0.14,-2h3.38c0.16,0.64 0.26,1.31 0.26,2s-0.1,1.36 -0.26,2h-3.38z" />
|
||||
</vector>
|
||||
@@ -863,4 +863,6 @@
|
||||
<string name="places_finding">جارٍ البحث…</string>
|
||||
<string name="places_not_found">لم يعثر Gearslip على موقعك. تأكد من تشغيل الموقع.</string>
|
||||
<string name="places_clear">مسح</string>
|
||||
<string name="settings_language">اللغة</string>
|
||||
<string name="settings_language_phone">مثل لغة الهاتف</string>
|
||||
</resources>
|
||||
@@ -847,4 +847,6 @@
|
||||
<string name="places_finding">Hledám…</string>
|
||||
<string name="places_not_found">Gearslip nenašel vaši polohu. Zkontrolujte, že je poloha zapnutá.</string>
|
||||
<string name="places_clear">Vymazat</string>
|
||||
<string name="settings_language">Jazyk</string>
|
||||
<string name="settings_language_phone">Stejný jako v telefonu</string>
|
||||
</resources>
|
||||
@@ -1,3 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="settings_language">Sprog</string>
|
||||
<string name="settings_language_phone">Samme som telefonen</string>
|
||||
</resources>
|
||||
@@ -713,4 +713,6 @@
|
||||
<string name="cert_downloaded_footer">Auto verbindet sich nicht? Manche Autos ab etwa 2020 lehnen das aasdk-Zertifikat ab, dann importieren Sie Ihr eigenes. Änderungen gelten ab der nächsten Verbindung.</string>
|
||||
<string name="car_cluster_video">Abbiegekarte im Kombiinstrument</string>
|
||||
<string name="car_cluster_video_note">Für Autos mit einem zweiten Bildschirm im Kombiinstrument: Gearslip zeigt dort das nächste Abbiegen. Gilt ab der nächsten Verbindung.</string>
|
||||
<string name="settings_language">Sprache</string>
|
||||
<string name="settings_language_phone">Wie auf dem Telefon</string>
|
||||
</resources>
|
||||
@@ -713,4 +713,6 @@
|
||||
<string name="cert_downloaded_footer">¿El coche no se conecta? Algunos coches de 2020 en adelante rechazan el certificado de aasdk, así que importa el tuyo. Los cambios se aplican en la próxima conexión.</string>
|
||||
<string name="car_cluster_video">Tarjeta de giro en la pantalla del cuadro</string>
|
||||
<string name="car_cluster_video_note">Para coches con una segunda pantalla en el cuadro de instrumentos: Gearslip muestra ahí el próximo giro. Se aplica en la próxima conexión.</string>
|
||||
<string name="settings_language">Idioma</string>
|
||||
<string name="settings_language_phone">El mismo que el teléfono</string>
|
||||
</resources>
|
||||
@@ -839,4 +839,6 @@
|
||||
<string name="places_finding">Recherche…</string>
|
||||
<string name="places_not_found">Gearslip n’a pas trouvé votre position. Vérifiez que la localisation est activée.</string>
|
||||
<string name="places_clear">Effacer</string>
|
||||
<string name="settings_language">Langue</string>
|
||||
<string name="settings_language_phone">Comme le téléphone</string>
|
||||
</resources>
|
||||
@@ -839,4 +839,6 @@
|
||||
<string name="places_finding">Ricerca…</string>
|
||||
<string name="places_not_found">Gearslip non ha trovato la tua posizione. Controlla che la localizzazione sia attiva.</string>
|
||||
<string name="places_clear">Cancella</string>
|
||||
<string name="settings_language">Lingua</string>
|
||||
<string name="settings_language_phone">Come il telefono</string>
|
||||
</resources>
|
||||
@@ -823,4 +823,6 @@
|
||||
<string name="places_finding">検索中…</string>
|
||||
<string name="places_not_found">現在地が見つかりませんでした。位置情報がオンになっているか確認してください。</string>
|
||||
<string name="places_clear">消去</string>
|
||||
<string name="settings_language">言語</string>
|
||||
<string name="settings_language_phone">スマートフォンと同じ</string>
|
||||
</resources>
|
||||
@@ -823,4 +823,6 @@
|
||||
<string name="places_finding">찾는 중…</string>
|
||||
<string name="places_not_found">Gearslip이 현재 위치를 찾지 못했습니다. 위치가 켜져 있는지 확인하세요.</string>
|
||||
<string name="places_clear">지우기</string>
|
||||
<string name="settings_language">언어</string>
|
||||
<string name="settings_language_phone">휴대전화와 동일</string>
|
||||
</resources>
|
||||
@@ -831,4 +831,6 @@
|
||||
<string name="places_finding">Zoeken…</string>
|
||||
<string name="places_not_found">Gearslip kon je locatie niet vinden. Staat locatie aan?</string>
|
||||
<string name="places_clear">Wissen</string>
|
||||
<string name="settings_language">Taal</string>
|
||||
<string name="settings_language_phone">Zelfde als de telefoon</string>
|
||||
</resources>
|
||||
@@ -847,4 +847,6 @@
|
||||
<string name="places_finding">Szukam…</string>
|
||||
<string name="places_not_found">Gearslip nie znalazł Twojej lokalizacji. Sprawdź, czy lokalizacja jest włączona.</string>
|
||||
<string name="places_clear">Wyczyść</string>
|
||||
<string name="settings_language">Język</string>
|
||||
<string name="settings_language_phone">Taki sam jak w telefonie</string>
|
||||
</resources>
|
||||
@@ -839,4 +839,6 @@
|
||||
<string name="places_finding">Procurando…</string>
|
||||
<string name="places_not_found">O Gearslip não encontrou onde você está. Veja se a localização está ligada.</string>
|
||||
<string name="places_clear">Limpar</string>
|
||||
<string name="settings_language">Idioma</string>
|
||||
<string name="settings_language_phone">O mesmo do celular</string>
|
||||
</resources>
|
||||
@@ -1,3 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="settings_language">Limbă</string>
|
||||
<string name="settings_language_phone">La fel ca pe telefon</string>
|
||||
</resources>
|
||||
@@ -847,4 +847,6 @@
|
||||
<string name="places_finding">Ищу…</string>
|
||||
<string name="places_not_found">Gearslip не нашёл, где вы. Проверьте, что геолокация включена.</string>
|
||||
<string name="places_clear">Очистить</string>
|
||||
<string name="settings_language">Язык</string>
|
||||
<string name="settings_language_phone">Как на телефоне</string>
|
||||
</resources>
|
||||
@@ -831,4 +831,6 @@
|
||||
<string name="places_finding">Söker…</string>
|
||||
<string name="places_not_found">Gearslip hittade inte var du är. Kontrollera att platstjänster är på.</string>
|
||||
<string name="places_clear">Rensa</string>
|
||||
<string name="settings_language">Språk</string>
|
||||
<string name="settings_language_phone">Samma som telefonen</string>
|
||||
</resources>
|
||||
@@ -831,4 +831,6 @@
|
||||
<string name="places_finding">Aranıyor…</string>
|
||||
<string name="places_not_found">Gearslip konumunuzu bulamadı. Konumun açık olduğundan emin olun.</string>
|
||||
<string name="places_clear">Temizle</string>
|
||||
<string name="settings_language">Dil</string>
|
||||
<string name="settings_language_phone">Telefonla aynı</string>
|
||||
</resources>
|
||||
@@ -847,4 +847,6 @@
|
||||
<string name="places_finding">Шукаю…</string>
|
||||
<string name="places_not_found">Gearslip не знайшов, де ви. Перевірте, чи увімкнено геолокацію.</string>
|
||||
<string name="places_clear">Очистити</string>
|
||||
<string name="settings_language">Мова</string>
|
||||
<string name="settings_language_phone">Як на телефоні</string>
|
||||
</resources>
|
||||
@@ -823,4 +823,6 @@
|
||||
<string name="places_finding">正在定位…</string>
|
||||
<string name="places_not_found">Gearslip 找不到你的位置。请检查定位是否已开启。</string>
|
||||
<string name="places_clear">清除</string>
|
||||
<string name="settings_language">语言</string>
|
||||
<string name="settings_language_phone">与手机相同</string>
|
||||
</resources>
|
||||
@@ -875,4 +875,6 @@
|
||||
<string name="places_finding">Finding you…</string>
|
||||
<string name="places_not_found">Gearslip couldn’t find where you are. Check that location is on.</string>
|
||||
<string name="places_clear">Clear</string>
|
||||
<string name="settings_language">Language</string>
|
||||
<string name="settings_language_phone">Same as the phone</string>
|
||||
</resources>
|
||||
Reference in new issue
Block a user