public void ConvertToPalasoConformPrivateUseRfc5646Tag(string language, string script, string region, string variant)
        {
            string newVariant    = "";
            string newPrivateUse = "";

            _script = script;
            _region = region;

            if (!String.IsNullOrEmpty(variant))
            {
                WritingSystemDefinition.SplitVariantAndPrivateUse(variant, out newVariant, out newPrivateUse);
            }
            var privateUseSubtagsWithoutXs = StripXs(newPrivateUse);
            var languageSubtagsWithoutXs   = StripXs(language);

            newPrivateUse = String.Join("-", (languageSubtagsWithoutXs.Union(privateUseSubtagsWithoutXs)).Where(str => !String.IsNullOrEmpty(str)).ToArray());

            _variant = WritingSystemDefinition.ConcatenateVariantAndPrivateUse(newVariant, newPrivateUse);

            if (!(String.IsNullOrEmpty(script) &&
                  String.IsNullOrEmpty(region) &&
                  String.IsNullOrEmpty(newVariant))
                )
            {
                _language = "qaa";
            }
        }
Ejemplo n.º 2
0
        public void SplitVariantAndPrivateUse_BogusVariantBadPrivateUse_HappilysplitsOnxDash()
        {
            string variant;
            string privateUse;

            WritingSystemDefinition.SplitVariantAndPrivateUse("bogusVariant-X-audio-emic-etic", out variant, out privateUse);
            Assert.That(variant, Is.EqualTo("bogusVariant"));
            Assert.That(privateUse, Is.EqualTo("audio-emic-etic"));
        }
Ejemplo n.º 3
0
        public void SplitVariantAndPrivateUse_VariantAndPrivateUseWithCapitalXDash_ReturnsConcatenatedVariantAndPrivateUse()
        {
            string variant    = String.Empty;
            string privateUse = String.Empty;

            WritingSystemDefinition.SplitVariantAndPrivateUse("1901-X-audio", out variant, out privateUse);
            Assert.That(variant, Is.EqualTo("1901"));
            Assert.That(privateUse, Is.EqualTo("audio"));
        }
Ejemplo n.º 4
0
        public void SplitVariantAndPrivateUse_PrivateUseWithCapitalXDashOnly_ReturnsPrivateUseWithxDash()
        {
            string variant;
            string privateUse;

            WritingSystemDefinition.SplitVariantAndPrivateUse("X-audio", out variant, out privateUse);
            Assert.That(variant, Is.EqualTo(String.Empty));
            Assert.That(privateUse, Is.EqualTo("audio"));
        }
Ejemplo n.º 5
0
        public void SplitVariantAndPrivateUse_NoxDash_ReturnsVariantOnly()
        {
            string variant;
            string privateUse;

            WritingSystemDefinition.SplitVariantAndPrivateUse("1901-audio", out variant, out privateUse);
            Assert.That(variant, Is.EqualTo("1901-audio"));
            Assert.That(privateUse, Is.EqualTo(String.Empty));
        }
Ejemplo n.º 6
0
        public void SplitVariantAndPrivateUse_VariantAndPrivateUse_ReturnsVariantAndPrivateUse()
        {
            string variant;
            string privateUse;

            WritingSystemDefinition.SplitVariantAndPrivateUse("1901-x-audio", out variant, out privateUse);
            Assert.That(variant, Is.EqualTo("1901"));
            Assert.That(privateUse, Is.EqualTo("audio"));
        }