我有多种语言的应用程序,它以几种语言运行。在我的应用程序中有用户可以更改的文本,但默认文本也需要翻译成不同的语言。这意味着如果用户想要编辑一些文本,则需要为他的语言编辑 resx 文件。
首先,我尝试使用 ResourceWriter
类,然后我的 resx 文件损坏了。我又创造了。
其次,我尝试使用 ResXResourceWriter
类,但找不到给我此功能(编辑某些属性的值)的好方法。
我认为只是像 xml 一样读取 resx 文件并进行编辑,但我不知道如何重新构建应用程序。
是否可以在运行时从应用程序编辑 resx 中的值。之后就可以像在 visual studio 中构建一样使用 c# 代码构建应用程序。
编辑 我不想将 resx 文件从 .en.resx 更改为其他格式 (.de.resx)。我想更改此 resx 文件中的值。例如,我有键 btnCont 和值 Click。例如,我想将 btnCont 更改为具有新值的 Click me。然后重新生成更改后的resx文件的dll。
多谢指教
最佳答案
也许有更好的方法来做到这一点(我很想了解它们),但是当我需要在运行时更改语言时,我所做的是将所有可本地化的字符串作为只读属性添加到我的 View 模型中。
public string ImportString { get { return lang.Import; } }
然后我只是从 XAML 添加到这个字符串的绑定(bind),并且在更改 UI 区域性之后我在我的 View 模型的所有字符串属性上调用 OnPropertyChanged。
protected void NotifyAllPropertiesChanged<T>()
{
foreach (var p in this.GetType().GetProperties())
if (p.PropertyType == typeof(T))
OnPropertyChanged(p.Name);
}
关于c# - 如何编辑 resx 文件(资源键值)运行时 wpf c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35014095/