【发布时间】:2015-07-05 10:42:43
【问题描述】:
我的应用程序中有几个ResourceDictionaries 以使其可本地化。这些文件被命名为 Language_en.xaml、Language_nl.xaml 等。下面给出了此类文件的示例。
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:system="clr-namespace:System;assembly=mscorlib">
<!-- DO NOT LOCALIZE -->
<system:String x:Key="Language">English</system:String>
<FlowDirection x:Key="FlowDirection">LeftToRight</FlowDirection>
<!-- DO LOCALIZE -->
<system:String x:Key="Title">English Title External</system:String>
</ResourceDictionary>
要在应用程序运行时加载这些文件,我会创建如下路径:
_appResDicSource = Path.Combine("\\" + _projectName + ";component", _languagesDirectoryName,
_fileBaseName + "_" + language + ".xaml");
_clsLibResDicSource = "\\MyDLL;component\\Languages\\Language_" + language + ".xaml";
以上内容适用于构建操作Resource 和Page,CtOD 设置为“不复制”,自定义工具设置为“MSBuild:Compile”。
从this link 我学到了下面的引述,但对我的项目最好的东西是什么?
资源(仅限 wpf):将文件嵌入到名为 AppName.g.resources 的共享(由具有类似设置的程序集中的所有文件)程序集清单资源中。
页面(仅限 wpf):用于将 xaml 文件编译为 baml。然后使用与 Resource 相同的技术嵌入 baml(即作为 `AppName.g.resources 提供)
【问题讨论】: