Я занимаюсь разработкой многоязычного приложения с использованием 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, устанавливаю и запускаю приложение: метка остается белой.
Я проверил, что и в установленном приложении язык выбран правильно, но в любом случае строки не отображаются.