예제 #1
0
 /// <summary>
 /// Translate text to the specified language<br/>
 /// 翻译文本到指定的语言<br/>
 /// </summary>
 /// <param name="text">Original text</param>
 /// <param name="code">Language code, eg: zh-CN</param>
 /// <returns></returns>
 public virtual string Translate(string text, string code)
 {
     // If text is empty, no needs to translate
     if (string.IsNullOrEmpty(text))
     {
         return("");
     }
     // Get translated text from cache
     return(TranslateCache.GetOrCreate(Pair.Create(code, text), () =>
     {
         // Get translate providers
         var providers = GetTranslateProviders(code);
         // Translate text and store to cache
         // If no provider is able to translate, then return the original text
         foreach (var provider in providers)
         {
             var translated = provider.Translate(text);
             if (translated != null)
             {
                 return translated;
             }
         }
         return text;
     }, TranslateCacheTime));
 }
예제 #2
0
 /// <summary>
 /// Clear cache
 /// </summary>
 public virtual void ClearCache()
 {
     TranslateCache.Clear();
 }