public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if(reader.TokenType == JsonToken.Null) {
                return null;
            }

            var intermediate = new Dictionary<string, string>();
            serializer.Populate(reader, intermediate);

            var language = new Language();
            foreach(var kvp in intermediate) {
                var culture = (CultureInfo)null;
                try {
                    culture = new CultureInfo(kvp.Key);
                } catch {
                    culture = CultureInfo.CurrentCulture;
                }
                language.Add(culture, kvp.Value);
            }

            return language;
        }