/// <summary> /// Get a localised string. /// </summary> /// <param name="archive"></param> /// <param name="id"></param> /// <param name="language"></param> /// <param name="defaultValue"></param> /// <returns></returns> public string GetLocalisedString(Engine.ItemArchiveId archive, int id, Language language = Language.English, string defaultValue = "") { StringArchive strings = GetLocalisedStringArchive(archive, language); if (strings == null) { return(defaultValue); } string value; if (strings.StringsById.TryGetValue(id, out value)) { return(value); } return(defaultValue); }
/// <summary> /// Get the localised string archive. /// </summary> /// <param name="archive"></param> /// <param name="language"></param> /// <returns></returns> public StringArchive GetLocalisedStringArchive(Engine.ItemArchiveId archive, Language language = Language.English) { if (archive == Engine.ItemArchiveId.None) { return(null); } Dictionary <Language, StringArchive> dictionary; Archive root = RootArchive; if (root == null) { return(null); } dictionary = StringArchives.GetValueOrCreate(archive); StringArchive stringArchive = dictionary.TryGetValue(language); if (stringArchive == null) { dictionary[language] = stringArchive = Engine.GetStringArchive(root, archive, language); } return(stringArchive); }