public void Edit <T>(IAssetData asset)
        {
            if (!asset.AssetNameEquals(Content.DataFarmAnimalsContentPath))
            {
                return;
            }
            var data   = asset.AsDictionary <string, string>().Data;
            var locale = asset.Locale.Split('-')[0];

            foreach (var farmAnimalType in FarmAnimals.GetCategories().SelectMany(o => (IEnumerable <FarmAnimalType>)o.Types))
            {
                if (farmAnimalType.Data != null)
                {
                    data[farmAnimalType.Type] = farmAnimalType.LocalizeData(locale);
                    data[farmAnimalType.Type] = SanitizeData(farmAnimalType.Data);
                }
            }

            Monitor.Log("Data/FarmAnimals:\n" + string.Join("\n", data.Select(o => o.Key + ": " + o.Value)));
        }