using System; using System.Globalization; using System.Reflection; using System.Runtime.Serialization; using Umbraco.Core.Models.EntityBase; namespace Umbraco.Core.Models { /// /// Represents a Language /// [Serializable] [DataContract(IsReference = true)] public class Language : Entity, ILanguage { private string _isoCode; private string _cultureName; public Language(string isoCode) { IsoCode = isoCode; } private static readonly PropertyInfo IsoCodeSelector = ExpressionHelper.GetPropertyInfo(x => x.IsoCode); private static readonly PropertyInfo CultureNameSelector = ExpressionHelper.GetPropertyInfo(x => x.CultureName); /// /// Gets or sets the Iso Code for the Language /// [DataMember] public string IsoCode { get { return _isoCode; } set { _isoCode = value; OnPropertyChanged(IsoCodeSelector); } } /// /// Gets or sets the Culture Name for the Language /// [DataMember] public string CultureName { get { return _cultureName; } set { _cultureName = value; OnPropertyChanged(CultureNameSelector); } } /// /// Returns a object for the current Language /// [IgnoreDataMember] public CultureInfo CultureInfo { get { return CultureInfo.CreateSpecificCulture(IsoCode); } } } }