我的理解是,推荐的WPF本地化方法是使用LocBaml工具将可本地化的项目提取到例如:一个csv文件,将项目翻译成所需的语言,并从这个csv文件重新生成一个新的卫星组件。然而,根据我的实验,这似乎与从resources.resx文件生成附属程序集相冲突,因为它们既没有将资源组合到单个资源文件中,也只是覆盖任何现有的附属程序集。
是否有一种推荐的方法(甚至更好,一种现有工具)用于对来自LocBaml / generate的输出进行“合并”以及在resources.resx文件上运行resgen的输出(默认情况下由VS执行)编译)。是否有人在那里解决同样的问题?
答案 0 :(得分:3)
您必须从LocBaml手动执行此生成.resources,然后使用Assembly链接器合并Resx和BAML资源。
这个过程看起来像这样:
LocBaml.exe /generate ..\obj\WpfLocalization.g.en-US.resources
/trans:Res\de.csv /out:de /culture:de
REM Combine resource files w/ Assembly Linker
al /template:WpfLocalization.exe
/embed:de\WpfLocalization.g.de.resources
/embed:..\..\obj\WpfLocalization.Properties.Resources.de.resources
/culture:de /out:de\WpfLocalization.resources.dll
(批处理文件中一行上的所有内容)。
您可以将上述内容放在为您的项目定制的批处理文件中。请记住,LocBaml必须与输出文件位于同一文件夹中。您可以将其添加为后期构建任务。
答案 1 :(得分:1)
我更喜欢使用您在WPF Localization Extension上找到的codeplex项目来本地化我的WPF项目。
它允许您使用与WinForms相同的方法,并且比LocBaml更容易使用。
答案 2 :(得分:0)
用Google搜索了一下,发现这个页面描述了一些使用LocBaml的方法,它描述了如何将resources.resx和locbaml生成的资源合并到一个文件中的非常详细的描述(使用al.exe)。
该页面介绍了使用LocBaml的三种方法,我正在寻找方法3中的最后一步。顺便说一下,该文章中有很多好东西