#13 add an option to force language X

This commit is contained in:
wkawecki
2022-03-30 23:14:02 +02:00
parent aa1893c36c
commit f0cd86b7a5
29 changed files with 184 additions and 2 deletions

View File

@@ -0,0 +1,40 @@
package com.geeksville.mesh
import android.content.Context
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import com.geeksville.android.Logging
import com.geeksville.mesh.model.UIViewModel
import java.util.*
open class BaseActivity: AppCompatActivity(), Logging {
override fun attachBaseContext(newBase: Context) {
val res = newBase.resources
val config = res.configuration
// get chosen language from preference
val prefs = UIViewModel.getPreferences(newBase)
val langCode = prefs.getString("lang","zz")
debug("langCode is $langCode")
if (Build.VERSION.SDK_INT >= 17) {
val locale = if (langCode == "zz")
Locale.getDefault()
else
Locale(langCode)
config.setLocale(locale)
if(Build.VERSION.SDK_INT > 24) {
//Using createNewConfigurationContext will cause CompanionDeviceManager to crash
applyOverrideConfiguration(config)
super.attachBaseContext(newBase)
}else {
super.attachBaseContext(newBase.createConfigurationContext(config))
}
} else {
super.attachBaseContext(newBase)
}
}
}

View File

@@ -118,7 +118,7 @@ eventually:
val utf8 = Charset.forName("UTF-8")
@AndroidEntryPoint
class MainActivity : AppCompatActivity(), Logging,
class MainActivity : BaseActivity(), Logging,
ActivityCompat.OnRequestPermissionsResultCallback {
companion object {
@@ -1079,6 +1079,10 @@ class MainActivity : AppCompatActivity(), Logging,
chooseThemeDialog()
return true
}
R.id.preferences_language -> {
chooseLangDialog()
return true
}
else -> super.onOptionsItemSelected(item)
}
}
@@ -1167,4 +1171,30 @@ class MainActivity : AppCompatActivity(), Logging,
}
}
private fun chooseLangDialog() {
/// Prepare dialog and its items
val builder = MaterialAlertDialogBuilder(this)
builder.setTitle(getString(R.string.preferences_language))
val languageLabels by lazy { resources.getStringArray(R.array.language_entries) }
val languageValues by lazy { resources.getStringArray(R.array.language_values) }
/// Load preferences and its value
val prefs = UIViewModel.getPreferences(this)
val editor: SharedPreferences.Editor = prefs.edit()
val lang = prefs.getString("lang", "zz")
debug("Lang from prefs: $lang")
builder.setSingleChoiceItems(languageLabels, languageValues.indexOf(lang)) { dialog, which ->
var lang = languageValues[which];
debug("Set lang pref to $lang")
editor.putString("lang", lang)
editor.apply()
dialog.dismiss()
}
val dialog = builder.create()
dialog.show()
}
}

View File

@@ -28,6 +28,10 @@
android:id="@+id/theme"
android:title="@string/theme"
app:showAsAction="withText" />
<item
android:id="@+id/preferences_language"
android:title="@string/preferences_language"
app:showAsAction="withText" />
<item
android:id="@+id/about"
android:title="@string/about"

View File

@@ -62,4 +62,6 @@
<string name="rate_dialog_cancel_en">Připomenout později</string>
<string name="rate_dialog_ok_en">Ohodnotit teď</string>
<string name="rate_dialog_title_en">Ohodnoťte Meshtastic</string>
<string name="preferences_language">Jazyk</string>
<string name="preferences_system_default">Podle systému</string>
</resources>

View File

@@ -28,4 +28,6 @@
<string name="are_you_sure_channel">Möchten Sie wirklich den Kanal wechseln? Die gesamte Kommunikation mit anderen Knoten wird unterbrochen, bis Sie die neuen Kanaleinstellungen freigeben.</string>
<string name="new_channel_rcvd">Neuen Kanal-Link empfangen</string>
<string name="do_you_want_switch">Möchten Sie zum Kanal wechseln? \'%s\' </string>
<string name="preferences_language">Sprache</string>
<string name="preferences_system_default">System</string>
</resources>

View File

@@ -73,4 +73,6 @@
<string name="modem_config_slow_short">Μικρή εμβέλεια (αργό)</string>
<string name="modem_config_slow_medium">Μεσαία εμβέλεια (αργό)</string>
<string name="modem_config_slow_long">μεγάλη εμβέλεια (αργό)</string>
<string name="preferences_language">Γλώσσα</string>
<string name="preferences_system_default">Προκαθορισμένο του συστήματος</string>
</resources>

View File

@@ -96,4 +96,6 @@
<string name="modem_config_slow_short">Curto alcance / lento</string>
<string name="modem_config_slow_medium">Médio alcance / lento</string>
<string name="modem_config_slow_long">Largo alcance / lento)</string>
<string name="preferences_language">Idioma</string>
<string name="preferences_system_default">Predeterminado del sistema</string>
</resources>

View File

@@ -28,4 +28,6 @@
<string name="are_you_sure_channel">Oletko varma, että haluat vaihtaa kanavaa? Kaikki yhteydet katkeavat, ennen kuin olet jakanut uudet kanavan asetukset.</string>
<string name="new_channel_rcvd">Vastaanotettu uuden kanavan URL</string>
<string name="do_you_want_switch">Haluatko siirtyä kanavalle \'%s\'?</string>
<string name="preferences_language">Kieli</string>
<string name="preferences_system_default">Järjestelmän oletus</string>
</resources>

View File

@@ -77,4 +77,6 @@
<string name="modem_config_slow_short">Courte distance (lent)</string>
<string name="modem_config_slow_medium">Moyenne distance (lent)</string>
<string name="modem_config_slow_long">Longue distance (lent)</string>
<string name="preferences_language">Langue</string>
<string name="preferences_system_default">Valeur par défaut du système</string>
</resources>

View File

@@ -43,4 +43,5 @@
<string name="current_pair">Tá tú péireáilte faoi láthair le raidió %s</string>
<string name="not_paired_yet">Níl raidió péireálite agat fós.</string>
<string name="change_radio">Athraigh raidió</string>
<string name="preferences_language">Teanga</string>
</resources>

View File

@@ -105,4 +105,6 @@
<string name="modem_config_slow_short">Rövid hatótáv (lassú)</string>
<string name="modem_config_slow_medium">Közepes hatótáv (lassú)</string>
<string name="modem_config_slow_long">Távoli hatótáv (lassú)</string>
<string name="preferences_language">Nyelv</string>
<string name="preferences_system_default">Alapbeállítás</string>
</resources>

View File

@@ -42,4 +42,6 @@
<string name="current_pair">Attualmente sei associato alla radio %s</string>
<string name="not_paired_yet">Non hai ancora associato alcuna radio..</string>
<string name="change_radio">Cambia radio</string>
<string name="preferences_language">Lingua</string>
<string name="preferences_system_default">Predefinito di sistema</string>
</resources>

View File

@@ -55,4 +55,6 @@ mapboxの有償プランまたは代替地図プロバイダを検討さ
<string name="not_connected">接続されていません。下記のMeshtasticデバイスを選択してください。</string>
<string name="connected_sleeping">接続しましたが、Meshtasticデバイスはスリープ状態です。</string>
<string name="update_to">%s更新</string>
<string name="preferences_language">言語</string>
<string name="preferences_system_default">システム既定</string>
</resources>

View File

@@ -76,4 +76,6 @@
<string name="modem_config_slow_short">짧은 거리 (느린 속도)</string>
<string name="modem_config_slow_medium">중간 거리 (느린 속도)</string>
<string name="modem_config_slow_long">>먼 거리 (느린 속도)</string>
<string name="preferences_language">언어</string>
<string name="preferences_system_default">시스템 기본값</string>
</resources>

View File

@@ -73,4 +73,6 @@
<string name="modem_config_slow_short">Klein bereik (traag)</string>
<string name="modem_config_slow_medium">Medium bereik (traag)</string>
<string name="modem_config_slow_long">Groot bereik (traag)</string>
<string name="preferences_language">Taal</string>
<string name="preferences_system_default">Systeemstandaard</string>
</resources>

View File

@@ -73,4 +73,6 @@
<string name="modem_config_slow_short">Kort rekkevidde (langsom)</string>
<string name="modem_config_slow_medium">Medium rekkevidde (langsom)</string>
<string name="modem_config_slow_long">Lang rekkevidde (langsom)</string>
<string name="preferences_language">Språk</string>
<string name="preferences_system_default">System standard</string>
</resources>

View File

@@ -135,4 +135,6 @@
<string name="why_background_required">Ta opcja wymaga dostępu \"Pozwól cały czas\" do lokalizacji.</string>
<string name="cancel_no_radio">Anuluj (brak dostępu)</string>
<string name="allow_will_show">Pozwól</string>
<string name="preferences_language">Język (wymagany restart)</string>
<string name="preferences_system_default">Domyślny systemu</string>
</resources>

View File

@@ -123,4 +123,6 @@
</plurals>
<string name="delete">Excluir</string>
<string name="select_all">Selecionar tudo</string>
<string name="preferences_language">Idioma</string>
<string name="preferences_system_default">Padrão do sistema</string>
</resources>

View File

@@ -123,4 +123,6 @@
</plurals>
<string name="delete">Excluir</string>
<string name="select_all">Selecionar tudo</string>
<string name="preferences_language">Idioma</string>
<string name="preferences_system_default">Configuração por omissão</string>
</resources>

View File

@@ -73,4 +73,6 @@
<string name="modem_config_slow_short">Rază scurtă (încet)</string>
<string name="modem_config_slow_medium">Rază medie (încet)</string>
<string name="modem_config_slow_long">Rază lungă (încet)</string>
<string name="preferences_language">Limba</string>
<string name="preferences_system_default">Setarea telefonului</string>
</resources>

View File

@@ -37,4 +37,6 @@
<string name="report_a_bug">Сообщить об ошибке</string>
<string name="report_bug_text">Вы уверены, что хотите сообщить об ошибке? После сообщения, пожалуйста, напишите в meshtastic.discourse.group, чтобы мы могли сопоставить отчет с тем, что вы нашли.</string>
<string name="report">Отчет</string>
<string name="preferences_language">Язык</string>
<string name="preferences_system_default">По умолчанию</string>
</resources>

View File

@@ -121,4 +121,6 @@
<string name="modem_config_slow_short">Krátky dosah / Pomalé</string>
<string name="modem_config_slow_medium">Stredný dosah / Pomalé</string>
<string name="modem_config_slow_long">Dlhý dosah / Pomalé</string>
<string name="preferences_language">Jazyk</string>
<string name="preferences_system_default">Predvolené nastavenie</string>
</resources>

View File

@@ -18,7 +18,7 @@
<string name="analytics_okay">Anonimna statistika uporabe in poročila o zrušitvah.</string>
<string name="looking_for_meshtastic_devices">Iščem Meshtastic naprave…</string>
<string name="requires_bluetooth">Ta aplikacija zahteva dostop do bluetooth. Dovolite dostop v nastavitvah za Android.</string>
<string name="error_bluetooth">Napaka - aplikacija potrebuje Bluetooth povezavo</string>
<string name="error_bluetooth">Gumb za skupno rabopovezavo</string>
<string name="starting_pairing">Začetek seznanjanja naprav</string>
<string name="pairing_failed">Napaka seznanjanja naprav</string>
<string name="url_for_join">URL za pridružitev Meshtastic mreže</string>
@@ -68,4 +68,6 @@
<string name="modem_config_slow_short">Kratek doseg (počasen)</string>
<string name="modem_config_slow_medium">Srednji doseg (počasen)</string>
<string name="modem_config_slow_long">Dolg doseg (počasen)</string>
<string name="preferences_language">Jezik</string>
<string name="preferences_system_default">Privzeta sistemska</string>
</resources>

View File

@@ -28,4 +28,6 @@
<string name="are_you_sure_channel">Je i sigurtë për ndërrimin e kanalit radio ? I gjithë komunikimi me nyjet e tjera do të përfundojë derisa të shprëndani parametrat e reja të kanalit radio.</string>
<string name="new_channel_rcvd">Ju keni një kanal radio të ri URL</string>
<string name="do_you_want_switch">Dëshiron të kalosh në këtë kanal radio ? \'%s\' ?</string>
<string name="preferences_language">Gjuhë</string>
<string name="preferences_system_default">Parazgjedhje sistemi</string>
</resources>

View File

@@ -28,4 +28,6 @@
<string name="are_you_sure_channel">Är du säker på att du vill byta kanal? All kommunikation med andra noder avbryts tills du delar de nya kanalinställningarna.</string>
<string name="new_channel_rcvd">Ny kanal-länk mottagen</string>
<string name="do_you_want_switch">Vill du växla till kanalen \'%s\' </string>
<string name="preferences_language">Språk</string>
<string name="preferences_system_default">Systemets standard</string>
</resources>

View File

@@ -70,4 +70,6 @@
<string name="modem_config_slow_short">Kısa menzilli (yavaş)</string>
<string name="modem_config_slow_medium">Orta menzilli (yavaş)</string>
<string name="modem_config_slow_long">Uzun menzilli (yavaş)</string>
<string name="preferences_system_default">Sistem varsayılanı</string>
<string name="preferences_language">Dil</string>
</resources>

View File

@@ -106,4 +106,6 @@
<string name="modem_config_slow_short">短距离(速度慢)</string>
<string name="modem_config_slow_medium">中等距离(速度慢)</string>
<string name="modem_config_slow_long">长距离(速度慢)</string>
<string name="preferences_language">语言</string>
<string name="preferences_system_default">系统默认</string>
</resources>

View File

@@ -3,4 +3,63 @@
<array name="MapMenuCheckbox">
<item>Use Custom URI?</item>
</array>
<string-array name="language_entries">
<!-- zz --><item>@string/preferences_system_default</item>
<!-- en --><item>English</item>
<!-- cs --><item>Čeština</item>
<!-- zh --><item>Chinese 中文 </item>
<!-- de --><item>Deutsch</item>
<!-- es --><item>Español</item>
<!-- fr --><item>Français</item>
<!-- ga --><item>Gaeilge</item>
<!-- el --><item>Greek ελληνικά</item>
<!-- ht --><item>Haiti</item>
<!-- it --><item>Italiano</item>
<!-- ja --><item>Japanese 日本語</item>
<!-- ko-rKR --><item>Korean 한국어</item>
<!-- hu --><item>Magyar</item>
<!-- nl --><item>Nederlands</item>
<!-- no --><item>Norge</item>
<!-- pl --><item>Polski</item>
<!-- pt --><item>Português</item>
<!-- pt_BR --><item>Português do Brasil</item>
<!-- ro --><item>Română</item>
<!-- ru --><item>Russian Pусский</item>
<!-- sq --><item>Shqip</item>
<!-- sk --><item>Slovenský</item>
<!-- sl --><item>Slovenščina</item>
<!-- fi --><item>Suomi</item>
<!-- sv --><item>Svenska</item>
<!-- tr --><item>Türkçe</item>
</string-array>
<string-array name="language_values">
<item>zz</item>
<item>en</item>
<item>cs</item>
<item>zh</item>
<item>de</item>
<item>es</item>
<item>fr</item>
<item>ga</item>
<item>el</item>
<item>ht</item>
<item>it</item>
<item>ja</item>
<item>ko-rKR</item>
<item>hu</item>
<item>nl</item>
<item>no</item>
<item>pl</item>
<item>pt</item>
<item>pt_BR</item>
<item>ro</item>
<item>ru</item>
<item>sq</item>
<item>sk</item>
<item>sl</item>
<item>fi</item>
<item>sv</item>
<item>tr</item>
</string-array>
</resources>

View File

@@ -138,4 +138,6 @@
<string name="download_region_dialog_title">Download Region</string>
<string name="download_region_connection_alert">You are not connected to the internet, you cannot download an offline map</string>
<string name="download_failed">Unable to download style pack</string>
<string name="preferences_language">Language (restart needed)</string>
<string name="preferences_system_default">System default</string>
</resources>