在我的(Web)项目中,我创建了2个常规资源文件:
strings.resx带有一些字符串值(此文件也具有strings.designer.cs)
strings.en-US.resx带有一些翻译后的字符串值(设置为不生成代码)
当我在向美国提出要求期间更改区域性时,将使用本地化的资源文件,并且所有字符串均以英语显示(如果可用)。
我现在添加了2个T4模板文件来自动生成资源文件(现在,在测试时,一些硬编码的值,稍后将从DB加载值:]
strings2.tt将创建一个strings2.resx文件,而VS自动创建一个strings2.designer.cs文件。
strings2.en-US.tt将创建strings2.en-US.resx文件(也不会生成代码)。
所有输出文件看起来都一样,所有文件都已成功构建,并且T4文件已转换而没有任何问题。但是,当我在更改区域性之后尝试从T4生成的资源文件中检索本地化的字符串时,它将不会返回英语变体。
我看不到任何导致此问题的原因,将所有资源文件移动到单独的项目并不能解决问题。
我会丢失某些东西还是仅仅是因为文件是自动生成的?
右键单击tt模板,选择“属性”选项。然后找到“构建操作”属性,然后选择“内容”。然后重新构建tt模板。对我来说这是有用的。