protocol LocalizedItem { associatedtype Localized var german: Localized { get } var english: Localized { get } } extension LocalizedItem { func localized(in language: ContentLanguage) -> Localized { switch language { case .german: return german case .english: return english } } }