internal static ArchivingLanguage GetOneLanguage(string languageKey) { ArchivingLanguage returnValue = null; var language = LanguageList.FindByEnglishName(languageKey); if (language == null || language.Iso3Code == "und") { if (!string.IsNullOrEmpty(languageKey) && languageKey.Length == 3) { language = LanguageList.FindByISO3Code(languageKey); } } if (language != null && language.Iso3Code != "und" && !string.IsNullOrEmpty(language.EnglishName)) { returnValue = new ArchivingLanguage(ForceIso639ThreeChar(language.Iso3Code), language.Definition) { EnglishName = language.EnglishName } } ; else if (Project != null) { var archivingLanguage = ParseLanguage(ForceIso639ThreeChar(Project.VernacularISO3CodeAndName), null); returnValue = new ArchivingLanguage(ForceIso639ThreeChar(archivingLanguage.Iso3Code), archivingLanguage.LanguageName) { EnglishName = archivingLanguage.EnglishName }; } return(returnValue); }
private static ArchivingLanguage ParseLanguage(string languageDesignator, IArchivingPackage package) { ArchivingLanguage archivingLanguage = null; var parts = languageDesignator.SplitTrimmed(':').ToArray(); if (parts.Length == 2) { var language = LanguageList.FindByISO3Code(parts[0]); // SP-765: Allow codes from Ethnologue that are not in the Arbil list archivingLanguage = string.IsNullOrEmpty(language?.EnglishName) ? new ArchivingLanguage(ForceIso639ThreeChar(parts[0]), parts[1], parts[1]) : new ArchivingLanguage(ForceIso639ThreeChar(language.Iso3Code), parts[1], language.EnglishName); package?.MetadataIso3Languages.Add(archivingLanguage); } else if (parts.Length == 1) { var language = LanguageList.FindByISO3Code(parts[0]); if (!string.IsNullOrEmpty(language?.EnglishName)) { archivingLanguage = new ArchivingLanguage(ForceIso639ThreeChar(language.Iso3Code), parts[1], language.EnglishName); package?.MetadataIso3Languages.Add(archivingLanguage); } } return(archivingLanguage); }
/// ------------------------------------------------------------------------------------------- public static LanguageItem Find(ArchivingLanguage archLanguage) { LanguageItem item = null; if (!string.IsNullOrEmpty(archLanguage.Iso3Code)) { item = FindByISO3Code(archLanguage.Iso3Code); } if (item == null) { if (!string.IsNullOrEmpty(archLanguage.EnglishName)) { item = FindByEnglishName(archLanguage.EnglishName); } } if (item != null) { item.OtherName = archLanguage.LanguageName; if (string.IsNullOrEmpty(item.EnglishName)) { item.EnglishName = archLanguage.EnglishName; } } return(item); }
public void GetLanguageName_ArchivingLanguage_ReturnsCorrectName() { // FieldWorks associates the name "Chinese" with the ISO3 Code "cmn" ArchivingLanguage lang = new ArchivingLanguage("cmn", "Chinese"); // RAMP reqires the name "Chinese, Mandarin" Assert.AreEqual("Chinese, Mandarin", _helper.GetLanguageName(lang.Iso3Code)); }
public void GetEnglishName_GetFromCulture_ReturnsEnglishName() { var eng = new ArchivingLanguage("eng"); var fra = new ArchivingLanguage("fra"); var spa = new ArchivingLanguage("spa"); Assert.AreEqual("English", eng.EnglishName); Assert.AreEqual("French", fra.EnglishName); Assert.AreEqual("Spanish", spa.EnglishName); }
public void GetLanguageName_ArchivingLanguage_ReturnsCorrectName() { IgnoreTestIfRampIsNotInstalled(); Assert.Ignore("This test is no longer valid because RAMP 3.0 does not have a languages file"); // FieldWorks associates the name "Chinese" with the ISO3 Code "cmn" ArchivingLanguage lang = new ArchivingLanguage("cmn", "Chinese"); // RAMP reqires the name "Chinese, Mandarin" Assert.AreEqual("Chinese, Mandarin", _helper.GetLanguageName(lang.Iso3Code)); }
internal static ArchivingLanguage GetOneLanguage(string languageKey) { ArchivingLanguage returnValue = null; var language = LanguageList.FindByEnglishName(languageKey); if (language == null || language.Iso3Code == "und") { if (!string.IsNullOrEmpty(languageKey) && languageKey.Length == 3) { language = LanguageList.FindByISO3Code(languageKey); } } if (language != null && language.Iso3Code != "und" && !string.IsNullOrEmpty(language.EnglishName)) { returnValue = new ArchivingLanguage(ForceIso639ThreeChar(language.Iso3Code), language.Definition) { EnglishName = language.EnglishName } } ; return(returnValue); }
/// ------------------------------------------------------------------------------------------- public static LanguageItem Find(ArchivingLanguage archLanguage) { LanguageItem item = null; if (!string.IsNullOrEmpty(archLanguage.Iso3Code)) item = FindByISO3Code(archLanguage.Iso3Code); if (item == null) { if (!string.IsNullOrEmpty(archLanguage.EnglishName)) item = FindByEnglishName(archLanguage.EnglishName); } if (item != null) { item.OtherName = archLanguage.LanguageName; if (string.IsNullOrEmpty(item.EnglishName)) item.EnglishName = archLanguage.EnglishName; } return item; }
// TODO: Do we need this method? /// <remarks/> public ArchivingActor ToArchivingActor() { ArchivingActor actr = new ArchivingActor { Age = Age, Education = Education, FullName = FullName }; if (Sex != null) actr.Gender = Sex.Value; if (Name.Length > 0) actr.Name = Name[0]; if (!string.IsNullOrEmpty(Role.Value)) actr.Role = Role.Value; if (!string.IsNullOrEmpty(BirthDate)) actr.BirthDate = BirthDate; foreach (LanguageType lang in Languages.Language) { var iso3 = lang.Id.Substring(lang.Id.Length - 3); var archLanguage = new ArchivingLanguage(iso3, lang.Name[0].Value); actr.Iso3Languages.Add(archLanguage); if (lang.PrimaryLanguage.Value == BooleanEnum.@true) actr.PrimaryLanguage = archLanguage; if (lang.MotherTongue.Value == BooleanEnum.@true) actr.MotherTongueLanguage = archLanguage; } return actr; }
/// <summary>Adds a language, setting some attributes also</summary> public void AddLanguage(ArchivingLanguage language, BooleanEnum primaryLanguage, BooleanEnum motherTongue) { var imdiLanguage = LanguageList.Find(language).ToLanguageType(); if (imdiLanguage == null) return; imdiLanguage.PrimaryLanguage = new BooleanType { Value = primaryLanguage, Link = ListType.Link(ListType.Boolean) }; imdiLanguage.MotherTongue = new BooleanType { Value = motherTongue, Link = ListType.Link(ListType.Boolean) }; Languages.Language.Add(imdiLanguage); }
/// <summary>Adds a language, setting some attributes also</summary> public void AddLanguage(ArchivingLanguage language, BooleanEnum dominantLanguage, BooleanEnum sourceLanguage, BooleanEnum targetLanguage) { var imdiLanguage = LanguageList.Find(language).ToLanguageType(); if (imdiLanguage == null) return; imdiLanguage.Dominant = new BooleanType { Value = dominantLanguage }; imdiLanguage.SourceLanguage = new BooleanType { Value = sourceLanguage }; imdiLanguage.TargetLanguage = new BooleanType { Value = targetLanguage }; Languages.Language.Add(imdiLanguage); }