Passolo 是一个商业产品,我的一个客户正在使用它。如果您已经在资源文件中设置了所有需要翻译的字符串,Passolo 应用程序会扫描这些字符串,生成文件以发送给翻译人员,并让您拉回已翻译的文本。
然而,这个产品不便宜,它确实更适合企业解决方案。
我选择使用这种方法(它看起来像旧的,在winforms中经常使用):
How to use a ResX file in a WPF application: Create a Resource (ResX) file in your project or you can reuse the Properties/Resources.resx file. In the Visual Studio Resource designer you have to change the Access Modifier from Internal to Public. This can be found in the top toolbar of the designer. Add the namespace to your XAML View:
xmlns:p="clr-namespace:Jbe.TestSuite.Infrastructure.Shell.Properties" The Resources can be accessed via the x:Static markup extension of XAML: <MenuItem Header="{x:Static p:Resources.FileMenu}">
摘自这里。
我测试了所有四个工具。
Lingobit可以正确地本地化RESX资源,但无法从XAML/BAML中提取任何字符串。Lingobit报告说XAML组件没有ID,即使我每个组件都有一个ID。对于WPF来说,对我来说Lingobit是无用的。
Multilizer也无法扫描任何XAML/BAML数据。此外,我甚至无法输入任何翻译。Multilizer是一个有缺陷且极难使用的应用程序。我不会推荐给任何人。
Sisulizer允许您本地化WPF程序集,但会弹出一个消息,表示程序集本地化是实验性的。但是,如果您指定Visual Studio项目文件(.csproj)而不是程序集文件(.exe),它可以正确地本地化RESX和XAML。XAML样式没有问题。
Passolo的表现与Sisulizer一样好。它可以本地化XAML,但没有扫描我想要的所有属性。
Lingobit和Multilizer无法本地化XAML,Sisulizer只能在您安装了完整的源代码和开发环境时进行本地化,而Passolo则会错过一些字符串。我仍在等待完美的WPF本地化工具:一个可以本地化WPF程序集的所有资源的工具。