WPF应用程序的本地化和CodeBehind的本地化

时间:2016-04-28 12:53:18

标签: c# wpf localization

我正在使用以下本地化选项:Click

Code Localization.cs:

public class TranslationSource : INotifyPropertyChanged
{
    private readonly ResourceManager _rm = new ResourceManager("RECOVER.Languages.Language",
        Assembly.GetExecutingAssembly());

    private CultureInfo _currentCulture;

    private static TranslationSource _instance;

    public static TranslationSource Instance
    {
        get
        {
            if (_instance == null)
            {
                _instance = new TranslationSource();
            }
            return _instance;
        }
    }

    public string this[string key]
    {
        get { return _rm.GetString(key, _currentCulture); }
    }

    public CultureInfo CurrentCulture
    {
        get { return _currentCulture; }
        set
        {
            _currentCulture = value;
            var @event = PropertyChanged;
            if (@event != null)
            {
                @event.Invoke(this, new PropertyChangedEventArgs(string.Empty));
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
}

public class LocExtension : Binding
{
    public LocExtension(string name) : base("[" + name + "]")
    {
        Mode = BindingMode.OneWay;
        Source = TranslationSource.Instance;
    }
}

如何对Localizate CodeBehind使用相同的原则?翻译所选语言的一些字符串(MessageBox等)。

感谢您的帮助!如有任何问题,请询问

也许是这样?

ResourceManager _rm = new ResourceManager("RECOVER.Languages.Language", Assembly.GetExecutingAssembly());

            var kekssda = _rm.GetString("Button", TranslationSource.Instance.CurrentCulture);

0 个答案:

没有答案