Пример #1
0
 public override string CoreGetPluralGenderString (LanguageGender gender,
     string singularMasculineMessage, string pluralMasculineMessage,
     string singularFeminineMessage, string pluralFeminineMessage,
     int n)
 {
     return TranslateString (singularMasculineMessage);
 }
Пример #2
0
 public override string CoreGetPluralGenderString(LanguageGender gender,
                                                  string singularMasculineMessage, string pluralMasculineMessage,
                                                  string singularFeminineMessage, string pluralFeminineMessage,
                                                  int n)
 {
     return(TranslateString(singularMasculineMessage));
 }
        protected bool GetResource(out T resource, string message,
                                   LanguageGender gender = LanguageGender.Neutral, int pluralCount = 1)
        {
            var cached_string = new CachedString {
                Message     = message,
                Gender      = gender,
                PluralOrder = GetPluralOrder(CurrentIsoLanguageCode, pluralCount)
            };

            if (string_cache.TryGetValue(cached_string, out resource))
            {
                return(true);
            }

            var id    = GetResourceId(message, gender, cached_string.PluralOrder);
            var field = reflection_type.GetField(id);

            if (field == null)
            {
                return(false);
            }

            resource = (T)field.GetValue(null);
            string_cache.Add(cached_string, resource);

            return(true);
        }
        protected bool GetResource(out T resource, string context, string message = null,
                                   LanguageGender gender = LanguageGender.Neutral, int pluralCount = 1)
        {
            var cached_string = new CachedString {
                Message     = message,
                Gender      = gender,
                PluralOrder = PluralRules.GetOrder(CurrentIsoLanguageCode, pluralCount)
            };

            if (string_cache.TryGetValue(cached_string, out resource))
            {
                return(true);
            }

            var id = GetResourceId(ResourceIdType.ComprehensibleIdentifier,
                                   context, message, gender, cached_string.PluralOrder);
            var field = reflection_type.GetTypeInfo().GetDeclaredField(id);

            if (field == null)
            {
                if (gender != LanguageGender.Neutral)
                {
                    return(GetResource(out resource, context, message, LanguageGender.Neutral, pluralCount));
                }
                return(false);
            }

            resource = (T)field.GetValue(null);
            string_cache.Add(cached_string, resource);

            return(true);
        }
Пример #5
0
 public override string CoreGetGenderString (LanguageGender gender,
     string masculineMessage, string feminineMessage)
 {
     var message = gender == LanguageGender.Feminine ? feminineMessage : masculineMessage;
     return CoreFilter (GetResource (null, message, gender: gender)
         ?? DefaultImplementation.CoreGetGenderString (gender, masculineMessage, feminineMessage));
 }
Пример #6
0
        public static string GetResourceId(string message, LanguageGender gender, int pluralOrder)
        {
            var builder = new StringBuilder("Vernacular_P");

            builder.Append(pluralOrder);
            builder.Append('_');

            if (gender != LanguageGender.Neutral)
            {
                builder.Append(gender == LanguageGender.Masculine ? "M_" : "F_");
            }

            foreach (var c in message)
            {
                if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_')
                {
                    builder.Append(c);
                }
                else if (c != ' ')
                {
                    builder.Append((int)c);
                }
            }

            return(builder.ToString());
        }
Пример #7
0
        public override string CoreGetGenderString(LanguageGender gender,
                                                   string masculineMessage, string feminineMessage)
        {
            var message = gender == LanguageGender.Feminine ? feminineMessage : masculineMessage;

            return(CoreFilter(GetResource(null, message, gender: gender)
                              ?? DefaultImplementation.CoreGetGenderString(gender, masculineMessage, feminineMessage)));
        }
Пример #8
0
 public override string CoreGetPluralGenderString(LanguageGender gender,
                                                  string singularMasculineMessage, string pluralMasculineMessage,
                                                  string singularFeminineMessage, string pluralFeminineMessage,
                                                  int n)
 {
     return(gender == LanguageGender.Feminine
         ? (n == 1 ? singularFeminineMessage : pluralFeminineMessage)
         : (n == 1 ? singularMasculineMessage : pluralMasculineMessage));
 }
Пример #9
0
 private void AssertTranslations (string orig, LanguageGender gender, Func<int, string> messageGetter)
 {
     ForEachCatalog (lang => {
         for (int i = 0; i < 10000; i++) {
             var order = PluralRules.GetOrder (Catalog.Implementation.CurrentIsoLanguageCode, i);
             Assert.AreEqual (lang + ",P" + order + "|" + orig + GenderTag (gender), messageGetter (i));
         }
     });
 }
Пример #10
0
 public override string CoreGetPluralGenderString (LanguageGender gender,
     string singularMasculineMessage, string pluralMasculineMessage,
     string singularFeminineMessage, string pluralFeminineMessage,
     int n)
 {
     return gender == LanguageGender.Feminine
         ? (n == 1 ? singularFeminineMessage : pluralFeminineMessage)
         : (n == 1 ? singularMasculineMessage : pluralMasculineMessage);
 }
Пример #11
0
 public static string GetPluralGenderString(LanguageGender gender,
                                            string singularMasculineMessage, string pluralMasculineMessage,
                                            string singularFeminineMessage, string pluralFeminineMessage,
                                            int n, string comment = null)
 {
     return(Implementation.CoreGetPluralGenderString(gender,
                                                     singularMasculineMessage, pluralMasculineMessage,
                                                     singularFeminineMessage, pluralFeminineMessage,
                                                     n));
 }
Пример #12
0
 private void AssertTranslations(string orig, LanguageGender gender, Func <int, string> messageGetter)
 {
     ForEachCatalog(lang => {
         for (int i = 0; i < 10000; i++)
         {
             var order = PluralRules.GetOrder(Catalog.Implementation.CurrentIsoLanguageCode, i);
             Assert.AreEqual(lang + ",P" + order + "|" + orig + GenderTag(gender), messageGetter(i));
         }
     });
 }
Пример #13
0
 private string GenderTag (LanguageGender gender)
 {
     switch (gender) {
         case LanguageGender.Masculine:
             return ":M";
         case LanguageGender.Feminine:
             return ":F";
         default:
             return String.Empty;
     }
 }
Пример #14
0
        public override string CoreGetGenderString(LanguageGender gender, string masculineMessage, string feminineMessage)
        {
            int resource_id;

            if (GetResource(out resource_id, masculineMessage, gender: gender))
            {
                return(GetString(resource_id));
            }

            return(CoreFilter(DefaultImplementation.CoreGetGenderString(gender, masculineMessage, feminineMessage)));
        }
Пример #15
0
 public override string CoreGetPluralGenderString(LanguageGender gender,
                                                  string singularMasculineMessage, string pluralMasculineMessage,
                                                  string singularFeminineMessage, string pluralFeminineMessage,
                                                  int n)
 {
     return(CoreFilter(GetResource(singularMasculineMessage, gender: gender, pluralCount: n)
                       ?? DefaultImplementation.CoreGetPluralGenderString(gender,
                                                                          singularMasculineMessage, pluralMasculineMessage,
                                                                          singularFeminineMessage, pluralFeminineMessage,
                                                                          n)));
 }
Пример #16
0
 public override string CoreGetPluralGenderString (LanguageGender gender,
     string singularMasculineMessage, string pluralMasculineMessage,
     string singularFeminineMessage, string pluralFeminineMessage,
     int n)
 {
     var message = gender == LanguageGender.Feminine ? singularFeminineMessage : singularMasculineMessage;
     return CoreFilter (GetResource (null, message, gender: gender, pluralCount: n)
         ?? DefaultImplementation.CoreGetPluralGenderString (gender,
             singularMasculineMessage, pluralMasculineMessage,
             singularFeminineMessage, pluralFeminineMessage,
             n));
 }
Пример #17
0
        public static string GetResourceId(ResourceIdType resourceIdType,
                                           string context, string message, LanguageGender gender, int pluralOrder)
        {
            if (message == null)
            {
                throw new ArgumentNullException("message");
            }

            var builder = new StringBuilder("Vernacular_P");

            if (!String.IsNullOrEmpty(context))
            {
                message = context + "__" + message;
            }

            builder.Append(pluralOrder);
            builder.Append('_');

            if (gender != LanguageGender.Neutral)
            {
                builder.Append(gender == LanguageGender.Masculine ? "M_" : "F_");
            }

            switch (resourceIdType)
            {
            case ResourceIdType.ComprehensibleIdentifier:
                break;

            case ResourceIdType.Base64:
                message = Convert.ToBase64String(Encoding.UTF8.GetBytes(message));
                break;

            default:
                throw new Exception("Unknown ResourceIdType");
            }

            foreach (var c in message)
            {
                if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_')
                {
                    builder.Append(c);
                }
                else if (c != ' ')
                {
                    builder.Append((int)c);
                }
            }

            return(builder.ToString());
        }
Пример #18
0
        private string GenderTag(LanguageGender gender)
        {
            switch (gender)
            {
            case LanguageGender.Masculine:
                return(":M");

            case LanguageGender.Feminine:
                return(":F");

            default:
                return(String.Empty);
            }
        }
Пример #19
0
        protected virtual string GetResource (string context, string message,
            LanguageGender gender = LanguageGender.Neutral, int pluralCount = 1)
        {
            if (GetResourceById == null) {
                return null;
            }

            var plural_order = PluralRules.GetOrder (CurrentIsoLanguageCode, pluralCount);
            var resource_id = GetResourceId (ResourceIdType, context, message, gender, plural_order);

            if (resource_id == null) {
                return null;
            }

            return GetResourceById (resource_id);
        }
Пример #20
0
        protected virtual string GetResource(string context, string message,
                                             LanguageGender gender = LanguageGender.Neutral, int pluralCount = 1)
        {
            if (GetResourceById == null)
            {
                return(null);
            }

            var plural_order = PluralRules.GetOrder(CurrentIsoLanguageCode, pluralCount);
            var resource_id  = GetResourceId(ResourceIdType, context, message, gender, plural_order);

            if (resource_id == null)
            {
                return(null);
            }

            return(GetResourceById(resource_id));
        }
Пример #21
0
        public override string CoreGetPluralGenderString(LanguageGender gender,
                                                         string singularMasculineMessage, string pluralMasculineMessage,
                                                         string singularFeminineMessage, string pluralFeminineMessage,
                                                         int n)
        {
            int resource_id;
            var message = gender == LanguageGender.Feminine ? singularFeminineMessage : singularMasculineMessage;

            if (GetResource(out resource_id, null, message, gender: gender, pluralCount: n))
            {
                return(GetString(resource_id));
            }

            return(CoreFilter(DefaultImplementation.CoreGetPluralGenderString(gender,
                                                                              singularMasculineMessage, pluralMasculineMessage,
                                                                              singularFeminineMessage, singularMasculineMessage,
                                                                              n)));
        }
Пример #22
0
        private LocalizedString CreateLocalizedString(LanguageGender gender, SequencePoint sequencePoint)
        {
            var localized_string = new LocalizedString {
                Gender = gender
            };

            if (sequencePoint != null)
            {
                localized_string.AddReference(RelativeDocumentUrl(sequencePoint.Document.Url), sequencePoint.StartLine);
            }

            if (StringAnalyzer.CheckFormatArguments(localized_string.UntranslatedSingularValue) ||
                StringAnalyzer.CheckFormatArguments(localized_string.UntranslatedPluralValue))
            {
                localized_string.StringFormatHint = "csharp-format";
            }

            return(localized_string);
        }
Пример #23
0
 private void AssertTranslations(string orig, LanguageGender gender, Func <string> messageGetter)
 {
     ForEachCatalog(lang => Assert.AreEqual(lang + "|" + orig + GenderTag(gender), messageGetter()));
 }
Пример #24
0
 protected override string GetResource(string context, string message, LanguageGender gender = LanguageGender.Neutral, int pluralCount = 1)
 {
     return message == null ? null : base.GetResource (context, message, gender, pluralCount);
 }
Пример #25
0
 public static string GetPluralGenderString(LanguageGender gender,
     string singularMasculineMessage, string pluralMasculineMessage,
     string singularFeminineMessage, string pluralFeminineMessage,
     int n, string comment = null)
 {
     return Implementation.CoreGetPluralGenderString (gender,
         singularMasculineMessage, pluralMasculineMessage,
         singularFeminineMessage, pluralFeminineMessage,
         n);
 }
Пример #26
0
 public static string GenderPlural (LanguageGender gender, int n)
 {
     return Catalog.GetPluralGenderString (gender, "GenderPlural:P0", "GenderPlural:P1",
         n, comment: "comment=GenderPlural");
 }
Пример #27
0
 public static string GetGenderString(LanguageGender gender, string masculineMessage,
     string feminineMessage, string comment)
 {
     return Implementation.CoreGetGenderString (gender, masculineMessage, feminineMessage);
 }
Пример #28
0
 public static string GetGenderString(LanguageGender gender, string message, string comment)
 {
     return Implementation.CoreGetGenderString (gender, message, message);
 }
Пример #29
0
 public static string GetPluralGenderString(LanguageGender gender, string singularMessage,
                                            string pluralMessage, int n, string comment)
 {
     return(Implementation.CoreGetPluralGenderString(gender, singularMessage, pluralMessage, singularMessage, pluralMessage, n));
 }
Пример #30
0
 public static string GenderSingular (LanguageGender gender)
 {
     return Catalog.GetGenderString (gender, "GenderSingular",
         comment: "comment=GenderSingular");
 }
Пример #31
0
 private void AssertTranslations(string orig, LanguageGender gender, Func<string> messageGetter)
 {
     ForEachCatalog (lang => Assert.AreEqual (lang + "|" + orig + GenderTag (gender), messageGetter ()));
 }
Пример #32
0
 public static string GetGenderString(LanguageGender gender, string masculineMessage,
                                      string feminineMessage, string comment = null)
 {
     return(Implementation.CoreGetGenderString(gender, masculineMessage, feminineMessage));
 }
Пример #33
0
 public abstract string CoreGetGenderString(LanguageGender gender, string masculineMessage, string feminineMessage);
Пример #34
0
 public override string CoreGetGenderString (LanguageGender gender, string masculineMessage, string feminineMessage)
 {
     return TranslateString (masculineMessage);
 }
Пример #35
0
 public override string CoreGetGenderString(LanguageGender gender, string masculineMessage, string feminineMessage)
 {
     return(TranslateString(masculineMessage));
 }
Пример #36
0
 public override string CoreGetGenderString(LanguageGender gender, string masculineMessage, string feminineMessage)
 {
     return(gender == LanguageGender.Feminine ? feminineMessage : masculineMessage);
 }
Пример #37
0
 public static string GenderPlural(LanguageGender gender, int n)
 {
     return(Catalog.GetPluralGenderString(gender, "GenderPlural:P0", "GenderPlural:P1",
                                          n, comment: "comment=GenderPlural"));
 }
Пример #38
0
 public static string GetPluralGenderString(LanguageGender gender, string singularMessage,
     string pluralMessage, int n, string comment)
 {
     return Implementation.CoreGetPluralGenderString (gender, singularMessage, pluralMessage, singularMessage, pluralMessage, n);
 }
Пример #39
0
        public static string GetResourceId (ResourceIdType resourceIdType,
            string context, string message, LanguageGender gender, int pluralOrder)
        {
            if (message == null) {
                throw new ArgumentNullException ("message");
            }

            var builder = new StringBuilder ("Vernacular_P");

            if (!String.IsNullOrEmpty (context)) {
                message = context + "__" + message;
            }

            builder.Append (pluralOrder);
            builder.Append ('_');

            if (gender != LanguageGender.Neutral) {
                builder.Append (gender == LanguageGender.Masculine ? "M_" : "F_");
            }

            switch (resourceIdType) {
                case ResourceIdType.ComprehensibleIdentifier:
                    break;
                case ResourceIdType.Base64:
                    message = Convert.ToBase64String (Encoding.UTF8.GetBytes (message));
                    break;
                default:
                    throw new Exception ("Unknown ResourceIdType");
            }

            foreach (var c in message) {
                if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_') {
                    builder.Append (c);
                } else if (c != ' ') {
                    builder.Append ((int)c);
                }
            }

            return builder.ToString ();
        }
Пример #40
0
        private LocalizedString CreateLocalizedString (LanguageGender gender, SequencePoint sequencePoint)
        {
            var localized_string = new LocalizedString { Gender = gender };

            if (sequencePoint != null) {
                localized_string.AddReference (RelativeDocumentUrl (sequencePoint.Document.Url), sequencePoint.StartLine);
            }

            if (StringAnalyzer.CheckFormatArguments (localized_string.UntranslatedSingularValue) ||
                StringAnalyzer.CheckFormatArguments (localized_string.UntranslatedPluralValue)) {
                localized_string.StringFormatHint = "csharp-format";
            }

            return localized_string;
        }
Пример #41
0
 public override string CoreGetGenderString(LanguageGender gender,
                                            string masculineMessage, string feminineMessage)
 {
     return(CoreFilter(GetResource(masculineMessage, gender: gender)
                       ?? DefaultImplementation.CoreGetGenderString(gender, masculineMessage, feminineMessage)));
 }
Пример #42
0
 public abstract string CoreGetPluralGenderString(LanguageGender gender,
                                                  string singularMasculineMessage, string pluralMasculineMessage,
                                                  string singularFeminineMessage, string pluralFeminineMessage,
                                                  int n);
Пример #43
0
 public abstract string CoreGetGenderString(LanguageGender gender, string masculineMessage, string feminineMessage);
Пример #44
0
 public static string GetGenderString(LanguageGender gender, string message, string comment = null)
 {
     return(Implementation.CoreGetGenderString(gender, message, message));
 }
Пример #45
0
 public abstract string CoreGetPluralGenderString(LanguageGender gender,
     string singularMasculineMessage, string pluralMasculineMessage,
     string singularFeminineMessage, string pluralFeminineMessage,
     int n);
Пример #46
0
 public override string CoreGetGenderString(LanguageGender gender, string masculineMessage, string feminineMessage)
 {
     return gender == LanguageGender.Feminine ? feminineMessage : masculineMessage;
 }
Пример #47
0
 public override string CoreGetGenderString(LanguageGender gender,
     string masculineMessage, string feminineMessage)
 {
     return CoreFilter (GetResource (masculineMessage, gender: gender)
         ?? DefaultImplementation.CoreGetGenderString (gender, masculineMessage, feminineMessage));
 }
Пример #48
0
        public static string GetResourceId(string message, LanguageGender gender, int pluralOrder)
        {
            var builder = new StringBuilder ("Vernacular_P");

            builder.Append (pluralOrder);
            builder.Append ('_');

            if (gender != LanguageGender.Neutral) {
                builder.Append (gender == LanguageGender.Masculine ? "M_" : "F_");
            }

            foreach (var c in message) {
                if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_') {
                    builder.Append (c);
                } else if (c != ' ') {
                    builder.Append ((int)c);
                }
            }

            return builder.ToString ();
        }
Пример #49
0
 public static string GenderSingular(LanguageGender gender)
 {
     return(Catalog.GetGenderString(gender, "GenderSingular",
                                    comment: "comment=GenderSingular"));
 }