Updates:
LocaleKitLanguage.==is now strict full-code identity (en-GB!=en-US,en!=en-GB). AddedisSameLanguageFamily(as:)for the short-code (family) match that==previously did implicitly. Two preferred entries that share a short code (e.g. region-decorateden-GBanden-UAover a bareenlocalization) no longer compare equal — fixing duplicate "selected" highlighting in a language picker.selectedAppLocaleis now deterministic: it resolves to exactly one language — an exact full-code match, otherwise the first same-family match (preferred entries first), otherwise English — and is always an element ofsortedLanguages.sortedLanguagesand the system/default seed checks now use explicit family matching viaisSameLanguageFamily(as:), preserving the existing list output.- Added
Hashableconformance consistent with the strict==, plus unit tests covering the resolution.