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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        Localizing WPF using LocBaml

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

        【讨论】:

          猜你喜欢
          • 2011-01-16
          • 1970-01-01
          • 2011-08-02
          • 2011-09-06
          • 1970-01-01
          • 2015-12-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多