Skip to content

Commit ddbf90d

Browse files
fix: caption & audio languages are not localized
1 parent fd3f384 commit ddbf90d

2 files changed

Lines changed: 6 additions & 10 deletions

File tree

library/src/commonMain/kotlin/project/pipepipe/app/helper/LanguageHelper.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ object LanguageHelper {
126126
"繁體中文" // zh-Hant
127127
)
128128
fun getLocalizedLanguageName(code: String): String {
129-
val index = sharedLanguageValues.indexOfFirst { it == code }
129+
val index = sharedLanguageValues.indexOfFirst { it.equals(code, ignoreCase = true) }
130130
if (index == -1) return code
131131
return sharedLanguageEntries[index]
132132
}

library/src/commonMain/kotlin/project/pipepipe/app/ui/component/player/PlayerControlMenus.kt

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ import androidx.compose.ui.unit.dp
2929
import dev.icerock.moko.resources.compose.stringResource
3030
import project.pipepipe.app.MR
3131
import project.pipepipe.app.SharedContext
32+
import project.pipepipe.app.helper.LanguageHelper
3233
import project.pipepipe.app.platform.ResolutionInfo
3334
import project.pipepipe.app.platform.SubtitleInfo
3435
import project.pipepipe.shared.infoitem.StreamInfo
35-
import java.util.Locale
3636
import kotlin.collections.forEach
3737

3838
@Composable
@@ -293,11 +293,9 @@ fun MoreMenu(
293293
) {
294294
val originText = stringResource(MR.strings.original)
295295
availableLanguages.forEach { language ->
296-
// Get localized language name using Locale
297296
val languageCode = language.first
298-
val locale = Locale.forLanguageTag(languageCode)
299-
val localizedName = locale.getDisplayLanguage(Locale.getDefault())
300-
val displayText = if (localizedName.isNotBlank()) {
297+
val localizedName = LanguageHelper.getLocalizedLanguageName(languageCode)
298+
val displayText = if (languageCode != localizedName) {
301299
if (language.second) {
302300
"$localizedName ($originText)"
303301
} else {
@@ -354,10 +352,8 @@ fun MoreMenu(
354352
// Available subtitles
355353
val autoGeneratedText = stringResource(MR.strings.player_subtitle_auto_generated)
356354
availableSubtitles.forEach { subtitle ->
357-
// Get localized language name using Locale
358-
val locale = Locale.forLanguageTag(subtitle.language)
359-
val localizedName = locale.getDisplayLanguage(Locale.getDefault())
360-
val displayText = if (localizedName.isNotBlank()) {
355+
val localizedName = LanguageHelper.getLocalizedLanguageName(subtitle.language)
356+
val displayText = if (subtitle.language != localizedName) {
361357
if (subtitle.isAutoGenerated) {
362358
"$localizedName ($autoGeneratedText)"
363359
} else {

0 commit comments

Comments
 (0)