London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

Log non translated texts

Vote:
0

Is there any way to log non translated texts in EPiServer?

/Jonas

 

 

#57375
Mar 13, 2012 8:13
Vote:
0

Hi, 

Looking at the Translate methods in EPiServer.Core.LanguageManager, you can see that the "[Missing text ...]" string is hardcoded as a return value if a text hasn't been translated: 

public string Translate(string key, string language)
{
    string str = this.TranslateRaw(key, language);
    if (str == null)
    {
        return ("[Missing text " + key + " for " + language + "]");
    }
    return str;
}

    

So what you could do is create your own Translate method that calls LanguageManager.Instance.Translate (and the overload methods if you're using those), and checks if the return value contains "[Missing text...]". If so, log the non translated text:

public static class MyLanguageManager
    {
        public static string Translate(string key)
        {
            string translatedText = LanguageManager.Instance.Translate(key);
            if (!string.IsNullOrEmpty(translatedText) && translatedText.StartsWith("[Missing text ")) // Or you can use Regex
                Logger.Debug(translatedText);
            return translatedText;
        }
    }

Now, instead of calling LanguageManager.Instance.Translate(...) or BasePage.Translate(...) elsewhere in your code, you call MyLanguageManager.Translate(...) instead.

I hope this helps!

Karoline

#57771
Mar 27, 2012 12:39
This thread is locked and should be used for reference only. Please use the Episerver CMS 7 and earlier versions forum to open new discussions.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.