mirror of
https://github.com/navidrome/navidrome.git
synced 2026-10-12 12:27:09 +02:00
fix(ui): match ISO 639 lyric languages
This commit is contained in:
parent
c69161288b
commit
5fafda1544
2 changed files with 25 additions and 2 deletions
|
|
@ -1,5 +1,13 @@
|
|||
const normalizeLanguageTag = (language) =>
|
||||
(language || '').toLowerCase().replace(/_/g, '-')
|
||||
const normalizeLanguageTag = (language) => {
|
||||
const normalized = (language || '').trim().replace(/_/g, '-')
|
||||
if (!normalized) return ''
|
||||
|
||||
try {
|
||||
return Intl.getCanonicalLocales(normalized)[0].toLowerCase()
|
||||
} catch {
|
||||
return normalized.toLowerCase()
|
||||
}
|
||||
}
|
||||
|
||||
const LYRIC_KIND_MAIN = 'main'
|
||||
const LYRIC_KIND_TRANSLATION = 'translation'
|
||||
|
|
|
|||
|
|
@ -101,6 +101,21 @@ describe('lyrics helpers', () => {
|
|||
expect(layers.main.line[0].value).toBe('繁體')
|
||||
})
|
||||
|
||||
it('matches ISO 639-2 lyric languages to regional browser locales', () => {
|
||||
const lyrics = [
|
||||
structured('main', 'spa', 'Español'),
|
||||
structured('main', 'eng', 'English'),
|
||||
structured('main', 'por', 'Português'),
|
||||
]
|
||||
|
||||
expect(selectLyricLayers(lyrics, 'en-US').main.line[0].value).toBe(
|
||||
'English',
|
||||
)
|
||||
expect(selectLyricLayers(lyrics, 'pt-BR').main.line[0].value).toBe(
|
||||
'Português',
|
||||
)
|
||||
})
|
||||
|
||||
it('resolves UTF-8 byte ranges without confusing repeated words', () => {
|
||||
const text = 'caf\u00e9 caf\u00e9'
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue