public static Title Localize(this IEnumerable <Title> titles, TitlePreferenceType preference, string metadataLanguage) { var titlesList = titles as IList <Title> ?? titles.ToList(); if (preference == TitlePreferenceType.Localized) { // prefer an official title, else look for a synonym var localized = titlesList.FirstOrDefault(t => t.Language == metadataLanguage && t.Type == "main") ?? titlesList.FirstOrDefault(t => t.Language == metadataLanguage && t.Type == "official") ?? titlesList.FirstOrDefault(t => t.Language == metadataLanguage && t.Type == "synonym"); if (localized != null) { return(localized); } } if (preference == TitlePreferenceType.Japanese) { // prefer an official title, else look for a synonym var japanese = titlesList.FirstOrDefault(t => t.Language == "ja" && t.Type == "main") ?? titlesList.FirstOrDefault(t => t.Language == "ja" && t.Type == "official") ?? titlesList.FirstOrDefault(t => t.Language == "ja" && t.Type == "synonym"); if (japanese != null) { return(japanese); } } // return the main title (romaji) return(titlesList.FirstOrDefault(t => t.Language == "x-jat" && t.Type == "main") ?? titlesList.FirstOrDefault(t => t.Type == "main") ?? titlesList.FirstOrDefault()); }
/// <summary> /// WebContent API call to select a prefence title /// </summary> /// <param name="WebContent"></param> /// <param name="preference"></param> /// <param name="language"></param> /// <param name="cancellationToken"></param> /// <returns></returns> private async Task <string> SelectName(string WebContent, TitlePreferenceType preference, string language, CancellationToken cancellationToken) { if (preference == TitlePreferenceType.Localized && language == "en") { return(await Get_title("en", WebContent)); } if (preference == TitlePreferenceType.Japanese) { return(await Get_title("jap", WebContent)); } return(await Get_title("jap_r", WebContent)); }
/// <summary> /// API call to select the lang /// </summary> /// <param name="WebContent"></param> /// <param name="preference"></param> /// <param name="language"></param> /// <returns></returns> private string SelectName(RootObject WebContent, TitlePreferenceType preference, string language) { if (preference == TitlePreferenceType.Localized && language == "en") { return(WebContent.data.Media.title.english); } if (preference == TitlePreferenceType.Japanese) { return(WebContent.data.Media.title.native); } return(WebContent.data.Media.title.romaji); }
private string SelectName(Anime anime, TitlePreferenceType preference, string language) { if (preference == TitlePreferenceType.Localized && language == "en") { return(anime.title_english); } if (preference == TitlePreferenceType.Japanese) { return(anime.title_japanese); } return(anime.title_romaji); }
/// <summary> /// Get the title in configured language /// </summary> /// <param name="language"></param> /// <returns></returns> public string GetPreferredTitle(TitlePreferenceType preference, string language) { if (preference == TitlePreferenceType.Localized) { if (language == "en") { return(this.title.english); } if (language == "jap") { return(this.title.native); } } if (preference == TitlePreferenceType.Japanese) { return(this.title.native); } return(this.title.romaji); }
/// <summary> /// Get the right name lang /// </summary> /// <param name="WebContent"></param> /// <param name="preference"></param> /// <param name="language"></param> /// <returns></returns> private static async Task <string> SelectName(string WebContent, TitlePreferenceType preference, string language) { if (preference == TitlePreferenceType.Localized && language == "en") { return(await Get_title("en", WebContent)); } if (preference == TitlePreferenceType.Localized && language == "de") { return(await Get_title("de", WebContent)); } if (preference == TitlePreferenceType.Localized && language == "ger") { return(await Get_title("de", WebContent)); } if (preference == TitlePreferenceType.Japanese) { return(await Get_title("jap", WebContent)); } return(await Get_title("jap_r", WebContent)); }