mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-05-16 23:12:12 +00:00
fix: language selection not working in ios
This commit is contained in:
parent
370303f20e
commit
c890cc3400
4 changed files with 17 additions and 5 deletions
|
|
@ -4,7 +4,7 @@ import nuvio.composeapp.generated.resources.Res
|
|||
import nuvio.composeapp.generated.resources.lang_english
|
||||
import nuvio.composeapp.generated.resources.lang_french
|
||||
import nuvio.composeapp.generated.resources.lang_spanish
|
||||
import nuvio.composeapp.generated.resources.lang_portuguese
|
||||
import nuvio.composeapp.generated.resources.lang_portuguese_portugal
|
||||
import nuvio.composeapp.generated.resources.lang_turkish
|
||||
import nuvio.composeapp.generated.resources.lang_italian
|
||||
import nuvio.composeapp.generated.resources.lang_greek
|
||||
|
|
@ -16,8 +16,9 @@ enum class AppLanguage(
|
|||
val labelRes: StringResource,
|
||||
) {
|
||||
ENGLISH("en", Res.string.lang_english),
|
||||
FRENCH("fr", Res.string.lang_french),
|
||||
FRENCH("fr", Res.string.lang_french),
|
||||
SPANISH("es", Res.string.lang_spanish),
|
||||
PORTUGUESE("pt", Res.string.lang_portuguese_portugal),
|
||||
TURKISH("tr", Res.string.lang_turkish),
|
||||
ITALIAN("it", Res.string.lang_italian),
|
||||
GREEK("el", Res.string.lang_greek),
|
||||
|
|
|
|||
|
|
@ -48,8 +48,8 @@ object ThemeSettingsRepository {
|
|||
_selectedTheme.value = theme
|
||||
_amoledEnabled.value = ThemeSettingsStorage.loadAmoledEnabled() ?: false
|
||||
val appLanguage = AppLanguage.fromCode(ThemeSettingsStorage.loadSelectedAppLanguage())
|
||||
_selectedAppLanguage.value = appLanguage
|
||||
ThemeSettingsStorage.applySelectedAppLanguage(appLanguage.code)
|
||||
_selectedAppLanguage.value = appLanguage
|
||||
}
|
||||
|
||||
fun setTheme(theme: AppTheme) {
|
||||
|
|
@ -69,8 +69,8 @@ object ThemeSettingsRepository {
|
|||
fun setAppLanguage(language: AppLanguage) {
|
||||
ensureLoaded()
|
||||
if (_selectedAppLanguage.value == language) return
|
||||
_selectedAppLanguage.value = language
|
||||
ThemeSettingsStorage.saveSelectedAppLanguage(language.code)
|
||||
ThemeSettingsStorage.applySelectedAppLanguage(language.code)
|
||||
_selectedAppLanguage.value = language
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,7 +50,17 @@ actual object ThemeSettingsStorage {
|
|||
NSUserDefaults.standardUserDefaults.setObject(languageCode, forKey = selectedAppLanguageKey)
|
||||
}
|
||||
|
||||
actual fun applySelectedAppLanguage(languageCode: String) = Unit
|
||||
actual fun applySelectedAppLanguage(languageCode: String) {
|
||||
val normalizedCode = languageCode
|
||||
.trim()
|
||||
.takeIf { it.isNotBlank() }
|
||||
?: AppLanguage.ENGLISH.code
|
||||
NSUserDefaults.standardUserDefaults.setObject(
|
||||
listOf(normalizedCode),
|
||||
forKey = "AppleLanguages",
|
||||
)
|
||||
NSUserDefaults.standardUserDefaults.synchronize()
|
||||
}
|
||||
|
||||
actual fun exportToSyncPayload(): JsonObject = buildJsonObject {
|
||||
loadSelectedTheme()?.let { put(selectedThemeKey, encodeSyncString(it)) }
|
||||
|
|
@ -69,5 +79,6 @@ actual object ThemeSettingsStorage {
|
|||
payload.decodeSyncString(selectedThemeKey)?.let(::saveSelectedTheme)
|
||||
payload.decodeSyncBoolean(amoledEnabledKey)?.let(::saveAmoledEnabled)
|
||||
payload.decodeSyncString(selectedAppLanguageKey)?.let(::saveSelectedAppLanguage)
|
||||
applySelectedAppLanguage(loadSelectedAppLanguage() ?: AppLanguage.ENGLISH.code)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue