如何从项目中自动提取字符串并将其添加到wpf中的resx文件中

时间:2016-03-27 14:18:17

标签: c# wpf resx

我有一个非常大的wpf项目,经过两年的开发我要求使其成为双语,有没有办法在xaml文件中自动提取标签和网格标题中的字符串,以便我可以翻译它们而不是手动提取它们?

2 个答案:

答案 0 :(得分:0)

我不知道是否有任何现有工具可以提供帮助,但您可以自己实现它,当我将大量100 C ++项目的大型解决方案从ansi转换为unicode字符串时,我遇到了这样的问题,我实现了一个简单的工具,其中一个窗口包含2个丰富的编辑框,一个用于替换彩色的原始文本,另一个用于替换,用于操作resex文件看看Working with .resx Files Programmatically,不要忘记正则表达式是您完成此工具的朋友。

答案 1 :(得分:0)

您可以通过查找WPG根Label元素中的所有Grid控件(例如mainGrid)并使用以下C#代码段提取其内容来自动执行此过程:

IEnumerable<Label> _collection = mainGrid.Children.OfType<Label>();
foreach(Label _control in _collection)
{
    string _text = _control.Content.ToString();
    // add you code here
}

结果可以放在资源文件中(例如,CSV),并添加您的翻译。其他解决方案(更复杂)涉及创建多语言XML文件,或本地多语言数据库,其中所有标签内容都添加到第一个字段,翻译添加到下一个字段等。

希望这可能会有所帮助。