5

我的理解是,推荐的 WPF 本地化方法是使用 LocBaml 工具将可本地化的项目提取到例如 csv 文件中,将项目翻译成所需的语言并从此 csv 文件重新生成新的卫星程序集。然而,从我的实验来看,这似乎与从 resources.resx 文件生成附属程序集相冲突,因为两者都没有将资源组合到单个资源文件中,而是简单地覆盖任何现有的附属程序集。

是否有推荐的方法(甚至更好的现有工具)来“合并”来自 LocBaml /generate 的输出和在 resources.resx 文件上运行 resgen 的输出(默认情况下由 VS 在构建时完成)。有没有人在解决同样的问题?

4

3 回答 3

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 必须与输出文件位于同一文件夹中。您可以将此添加为后期构建任务。

于 2009-06-14T08:08:27.143 回答
1

我更喜欢使用您可以在codeplex上找到的WPF 本地化扩展项目来本地化我的 WPF 项目。

它允许您使用与 WinForms 相同的方法,并且比 LocBaml 更易于使用。

于 2008-11-10T22:41:01.253 回答
0

谷歌了一下,发现这个页面描述了一些使用 LocBaml 的方法,其中包含一个非常详细的描述,关于如何将 resources.resx 和 locbaml 生成的资源合并到一个文件中(使用 al.exe)。

使用 LocBaml 本地化 WPF

该页面描述了三种使用 LocBaml 的方法,我一直在寻找方法 3 的最后一步。顺便说一下,那篇文章中有很多好东西

于 2008-11-11T14:38:57.810 回答