greenshot/GreenshotConfluencePlugin/Support/TranslationManager.cs
RKrom 8d458998a1 Moving back to trunk!
git-svn-id: http://svn.code.sf.net/p/greenshot/code/trunk@1602 7dccd23d-a4a3-4e1f-8c07-b4c1b4018ab4
2012-01-24 19:24:36 +00:00

73 lines
2 KiB
C#

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading;
namespace TranslationByMarkupExtension
{
public class TranslationManager
{
private static TranslationManager _translationManager;
public event EventHandler LanguageChanged;
public CultureInfo CurrentLanguage
{
get { return Thread.CurrentThread.CurrentUICulture; }
set
{
if( value != Thread.CurrentThread.CurrentUICulture)
{
Thread.CurrentThread.CurrentUICulture = value;
OnLanguageChanged();
}
}
}
public IEnumerable<CultureInfo> Languages
{
get
{
if( TranslationProvider != null)
{
return TranslationProvider.Languages;
}
return Enumerable.Empty<CultureInfo>();
}
}
public static TranslationManager Instance
{
get
{
if (_translationManager == null)
_translationManager = new TranslationManager();
return _translationManager;
}
}
public ITranslationProvider TranslationProvider { get; set; }
private void OnLanguageChanged()
{
if (LanguageChanged != null)
{
LanguageChanged(this, EventArgs.Empty);
}
}
public object Translate(string key)
{
if( TranslationProvider!= null)
{
object translatedValue =TranslationProvider.Translate(key);
if( translatedValue != null)
{
return translatedValue;
}
}
return string.Format("!{0}!", key);
}
}
}