public WritingSystemDefinitionV1()
 {
     SortUsing        = SortRulesType.DefaultOrdering;
     IsUnicodeEncoded = true;
     _rfcTag          = new Rfc5646Tag();
     _id = Bcp47Tag;
 }
        public void SetAllComponents(string language, string script, string region, string variant)
        {
            string variantPart;
            string privateUsePart;

            IetfLanguageTag.SplitVariantAndPrivateUse(variant, out variantPart, out privateUsePart);
            _rfcTag = new Rfc5646Tag(language, script, region, variantPart, privateUsePart);
            _id     = Bcp47Tag;
        }
        private static string UniqueTagForDuplicate(string rfcTag, IEnumerable <string> uniqueRfcTags)
        {
            Rfc5646Tag tag = Rfc5646Tag.Parse(rfcTag);
            string     originalPrivateUse = tag.PrivateUse;
            int        duplicateNumber    = 0;

            do
            {
                tag.PrivateUse = originalPrivateUse;
                tag.AddToPrivateUse(String.Format("dupl{0}", duplicateNumber));
                duplicateNumber++;
            } while (uniqueRfcTags.Any(s => s.Equals(tag.CompleteTag, StringComparison.OrdinalIgnoreCase)));
            return(tag.CompleteTag);
        }
 public void SetTagFromString(string completeTag)
 {
     _rfcTag = Rfc5646Tag.Parse(completeTag);
     _id     = Bcp47Tag;
 }