コード例 #1
0
        public object TranslateForPrinter(MultistringTag key)
        {
            string sLang = PrintingLanguage.ToLowerInvariant();

            var result = TaggedStrings.GetStringSafely(key.Value, sLang.ToLowerInvariant());

            if (!string.IsNullOrEmpty(result))
            {
                return(result);
            }

            return(string.Format("!{0}!", key.Value));
        }
コード例 #2
0
        public string Translate(MultistringTag key, params object[] args)
        {
            string result = "";
            string sLang  = CurrentLanguage;

            result = TaggedStrings.GetStringSafely(key.Value, sLang.ToLowerInvariant());


            if (!string.IsNullOrEmpty(result))
            {
                return(result);
            }

            return(string.Format("{0}", key.Default));
        }
コード例 #3
0
 public static TranslationData GetTranslationData(MultistringTag key, string args = "")
 {
     lock (_locker)
     {
         if (key == null || string.IsNullOrWhiteSpace(key.Value))
         {
             return(new TranslationData(key, args));
         }
         else if (!Cache.ContainsKey(key.Value + args))
         {
             var translationDate = new TranslationData(key, args);
             Cache.Add(key.Value + args, translationDate);
             return(translationDate);
         }
         return(Cache[key.Value + args]);
     }
 }
コード例 #4
0
        public object Translate(MultistringTag key, string args = "")
        {
            if (TranslationProvider != null)
            {
                object translatedValue = null;
                translatedValue = String.IsNullOrEmpty(args) ? TranslationProvider.Translate(key) : TranslationProvider.Translate(key, args.Split(','));
                if (translatedValue != null)
                {
                    return(translatedValue);
                }
            }

            string result = key.Value;

            if (!String.IsNullOrEmpty(args))
            {
                result = String.Format(result, args.Split(','));
            }

            return(string.Format("!{0}!", result));
        }
コード例 #5
0
        public string Translate(MultistringTag key, params object[] args)
        {
            string result = "";
            string sLang  = CurrentLanguage;

            result = LineSr.Instance.AllObjects.TaggedStrings.GetStringSafely(key.Value, sLang.ToLowerInvariant());


            if (!string.IsNullOrEmpty(result))
            {
                if (args.Length > 0)
                {
                    try
                    {
                        for (int i = 0; i < args.Length; i++)
                        {
                            object arg = args[i];
                            result = result.Replace("{" + i + "}", arg.ToString());
                        }
                    }
                    catch (Exception e)
                    {
                        Log.Error(key.Default, e);
                        Log.Error(e.Message, e);
                    }
                }
                return(result.Replace("\\r", "\r").Replace("\\n", "\n"));
            }

            if (string.IsNullOrEmpty(ConfigurationManager.AppSettings["show_multistring_tags"]))
            {
                if (!string.IsNullOrEmpty(key.Default.Trim(' ')))
                {
                    return(key.Default);
                }
            }

            return(string.Format("!{0}!", key.Value));
        }
コード例 #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TranslationData"/> class.
 /// </summary>
 /// <param name="key">The key.</param>
 private TranslationData(MultistringTag key, string args = "")
 {
     this._args = args;
     _key       = key;
 }
コード例 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TranslateExtension"/> class.
 /// </summary>
 /// <param name="key">The key.</param>
 public TranslateExtension(MultistringTag key)
 {
     _key = key;
 }