public static IEnumerable <ResourceString> Generate(ResourceIdType resourceIdType, LocalizedString localizedString) { string [] translated; if (localizedString.HasValidTranslations) { translated = localizedString.TranslatedValues; } else { translated = new [] { localizedString.UntranslatedSingularValue, localizedString.UntranslatedPluralValue }; } for (int i = 0; i < translated.Length; i++) { if (translated [i] == null || (i == 0 && String.IsNullOrWhiteSpace(localizedString.UntranslatedSingularValue))) { continue; } yield return(new ResourceString { Id = Catalog.GetResourceId(resourceIdType, localizedString.Context, localizedString.UntranslatedSingularValue, localizedString.Gender, i), Untranslated = localizedString.UntranslatedSingularValue, Translated = translated [i] }); } }
public static IEnumerable<ResourceString> Generate(ResourceIdType resourceIdType, LocalizedString localizedString) { string [] translated; if (localizedString.HasValidTranslations) { translated = localizedString.TranslatedValues; } else { translated = new [] { localizedString.UntranslatedSingularValue, localizedString.UntranslatedPluralValue }; } for (int i = 0; i < translated.Length; i++) { if (translated [i] == null || (i == 0 && String.IsNullOrWhiteSpace (localizedString.UntranslatedSingularValue))) { continue; } yield return new ResourceString { Id = Catalog.GetResourceId (resourceIdType, localizedString.Context, localizedString.UntranslatedSingularValue, localizedString.Gender, i), Untranslated = localizedString.UntranslatedSingularValue, Translated = translated [i] }; } }
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()); }
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 (); }
public ResourceCatalog () { ResourceIdType = ResourceIdType.ComprehensibleIdentifier; }
public ResourceCatalog() { ResourceIdType = ResourceIdType.ComprehensibleIdentifier; }