Как исправить многоязычное приложение c #, чтобы оно могло работать после установки, а не только в среде VS2018 - PullRequest
1 голос
/ 11 апреля 2019

Я занимаюсь разработкой многоязычного приложения с использованием ResourceManager и пользовательских файлов ресурсов.Приложение не должно использовать текущую культуру ПК, но один из вышеупомянутых файлов.При запуске программы из среды Visual Studio 2017 все работает правильно.Если я сделаю установочный диск и установлю его, я больше не вижу строк.Как решить проблему?

Я создал два файла .resx: Resources.en.resx и Resources.it.resx (в разделе «Свойства») и меню для выбора языка.

Iсоздать класс для управления языком:

public class LanguageConfiguration: INotifyPropertyChanged
{
    public CultureInfo MyCulture { get; set; }

    private string _langName= "en";
    public string LangName
    {
        get => _langName;
        private set
        {
            if (value == _langName) return;
            _langName= value;
            UpdateLanguage();
            OnPropertyChanged();
        }
    }        


    private LanguageConfiguration ()
    {
        UpdateLanguage();
    }

    public void UpdateLanguage()
    {
        Cultura = CultureInfo.CreateSpecificCulture(_langName);

    }

 }

В ViewModel главной формы:

public class ViewModelMain : INotifyPropertyChanged
{
    public readonly LanguageConfiguration Language;
    public ResourceManager Translation{ get; set; }

    public ViewModelMain(Action<Action> invoker)
    {
        Language = new LanguageConfiguration();
        var Translation=  new GestoreTraduttore(TraduzioneHelper.Namespace, TraduzioneHelper.Assembly);
        Translation = new ResourceManager($@"{typeof(ViewModelMain).Namespace}.Properties.Resources", typeof(ViewModelMain).Assembly);
    }

Я ожидаю, что метка в главной форме изменится при изменении выбранного языка (LangName).И на самом деле это происходит, запуская программу с помощью кнопки «Play».

На этом этапе я создаю установочный диск с помощью проекта установки Visual Studio 2017, устанавливаю и запускаю приложение: метка остается белой.

Я проверил, что и в установленном приложении язык выбран правильно, но в любом случае строки не отображаются.

...