【问题标题】:Combine LocBaml and Resources in single satellite assembly在单个卫星组件中结合 LocBaml 和资源
【发布时间】:2008-11-10 15:20:17
【问题描述】:
据我了解,推荐的 WPF 本地化方法是使用 LocBaml 工具将可本地化的项目提取到例如一个 csv 文件,将项目翻译成所需的语言,并从此 csv 文件重新生成一个新的卫星组件。然而,从我的实验来看,这似乎与从 resources.resx 文件生成附属程序集相冲突,因为两者都没有将资源组合到单个资源文件中,而是简单地覆盖任何现有的附属程序集。
是否有推荐的方法(或者甚至更好的现有工具)来“合并”来自 LocBaml /generate 的输出和在 resources.resx 文件上运行 resgen 的输出(默认情况下由 VS on构建)。有没有人在解决同样的问题?
【问题讨论】:
标签:
wpf
localization
resources
resgen
【解决方案1】:
您必须手动执行此操作,从 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 必须与输出文件位于同一文件夹中。您可以将此添加为后期构建任务。
【解决方案3】:
谷歌了一下,发现这个页面描述了一些使用 LocBaml 的方法,其中包含一个非常详细的描述,关于如何将 resources.resx 和 locbaml 生成的资源合并到一个文件中(使用 al.exe)。
Localizing WPF using LocBaml
该页面描述了三种使用 LocBaml 的方法,我正在寻找方法 3 的最后一步。顺便说一下,那篇文章中有很多好东西