/// <summary>
        /// Create the inherited localizability attribute
        /// </summary>
        /// <param name="source">localizability attribute defined in source</param>
        /// <param name="inheritable">localizability attribute inheritable from above</param>
        /// <returns>LocalizabilityAttribute</returns>
        private LocalizabilityAttribute CreateInheritedLocalizability(
            LocalizabilityAttribute source,
            LocalizabilityAttribute inheritable
            )
        {
            LocalizationCategory category =
                (source.Category == LocalizationCategory.Inherit) ?
                inheritable.Category :
                source.Category;

            Readability readability =
                (source.Readability == Readability.Inherit) ?
                inheritable.Readability :
                source.Readability;

            Modifiability modifiability =
                (source.Modifiability == Modifiability.Inherit) ?
                inheritable.Modifiability :
                source.Modifiability;

            LocalizabilityAttribute attribute = new LocalizabilityAttribute(category);

            attribute.Readability   = readability;
            attribute.Modifiability = modifiability;
            return(attribute);
        }
Exemple #2
0
        // Helper to override a localizability attribute. Not needed for compiler
        internal LocalizabilityAttribute Override(LocalizabilityAttribute attribute)
        {
            Modifiability        modifiability = attribute.Modifiability;
            Readability          readability   = attribute.Readability;
            LocalizationCategory category      = attribute.Category;

            bool overridden = false;

            if (((int)Modifiability) != InvalidValue)
            {
                modifiability = Modifiability;
                overridden    = true;
            }

            if (((int)Readability) != InvalidValue)
            {
                readability = Readability;
                overridden  = true;
            }

            if (((int)Category) != InvalidValue)
            {
                category   = Category;
                overridden = true;
            }

            if (overridden)
            {
                attribute = new LocalizabilityAttribute(category);
                attribute.Modifiability = modifiability;
                attribute.Readability   = readability;
            }

            return(attribute);
        }
 // Token: 0x06006EBC RID: 28348 RVA: 0x001FD4A0 File Offset: 0x001FB6A0
 private LocalizabilityAttribute CombineMinimumLocalizability(LocalizabilityAttribute first, LocalizabilityAttribute second)
 {
     if (first != null && second != null)
     {
         Readability          readability   = (Readability)Math.Min((int)first.Readability, (int)second.Readability);
         Modifiability        modifiability = (Modifiability)Math.Min((int)first.Modifiability, (int)second.Modifiability);
         LocalizationCategory category;
         if (first.Category == LocalizationCategory.NeverLocalize || second.Category == LocalizationCategory.NeverLocalize)
         {
             category = LocalizationCategory.NeverLocalize;
         }
         else if (first.Category == LocalizationCategory.Ignore || second.Category == LocalizationCategory.Ignore)
         {
             category = LocalizationCategory.Ignore;
         }
         else
         {
             category = ((first.Category != LocalizationCategory.None) ? first.Category : second.Category);
         }
         return(new LocalizabilityAttribute(category)
         {
             Readability = readability,
             Modifiability = modifiability
         });
     }
     if (first != null)
     {
         return(first);
     }
     return(second);
 }
        // Token: 0x06006ECA RID: 28362 RVA: 0x001FDA24 File Offset: 0x001FBC24
        internal LocalizabilityAttribute Override(LocalizabilityAttribute attribute)
        {
            Modifiability        modifiability = attribute.Modifiability;
            Readability          readability   = attribute.Readability;
            LocalizationCategory category      = attribute.Category;
            bool flag = false;

            if (this.Modifiability != (Modifiability)(-1))
            {
                modifiability = this.Modifiability;
                flag          = true;
            }
            if (this.Readability != (Readability)(-1))
            {
                readability = this.Readability;
                flag        = true;
            }
            if (this.Category != (LocalizationCategory)(-1))
            {
                category = this.Category;
                flag     = true;
            }
            if (flag)
            {
                attribute = new LocalizabilityAttribute(category);
                attribute.Modifiability = modifiability;
                attribute.Readability   = readability;
            }
            return(attribute);
        }
        /// <summary>
        /// It combines the min values of two localizability attributes.
        /// </summary>
        /// <param name="first">first </param>
        /// <param name="second">second</param>
        /// <returns>LocalizabilityAttribute</returns>
        private LocalizabilityAttribute CombineMinimumLocalizability(
            LocalizabilityAttribute first,
            LocalizabilityAttribute second
            )
        {
            if (first == null || second == null)
            {
                return((first == null) ? second : first);
            }

            // min of two readability enum. The less the more restrictive.
            Readability readability = (Readability)Math.Min(
                (int)first.Readability,
                (int)second.Readability
                );

            // min of two Modifiability enum. The less the more restrictive.
            Modifiability modifiability = (Modifiability)Math.Min(
                (int)first.Modifiability,
                (int)second.Modifiability
                );

            // for category, NeverLocalize < Ignore < { all others } < None
            // If both categories belong to { all others }, first.Category wins
            LocalizationCategory category = LocalizationCategory.None;

            if (first.Category == LocalizationCategory.NeverLocalize ||
                second.Category == LocalizationCategory.NeverLocalize)
            {
                category = LocalizationCategory.NeverLocalize;
            }
            else if (first.Category == LocalizationCategory.Ignore ||
                     second.Category == LocalizationCategory.Ignore)
            {
                category = LocalizationCategory.Ignore;
            }
            else
            {
                category = (first.Category != LocalizationCategory.None) ?
                           first.Category :
                           second.Category;
            }

            LocalizabilityAttribute result = new LocalizabilityAttribute(category);

            result.Readability   = readability;
            result.Modifiability = modifiability;

            return(result);
        }
 internal LocalizabilityGroup()
 {
     Modifiability = (Modifiability) InvalidValue;
     Readability   = (Readability) InvalidValue;
     Category      = (LocalizationCategory) InvalidValue;
 }
Exemple #7
0
 internal LocalizabilityGroup()
 {
     Modifiability = (Modifiability)InvalidValue;
     Readability   = (Readability)InvalidValue;
     Category      = (LocalizationCategory)InvalidValue;
 }