我正在尝试对我的C#.NET 3.5项目(游戏模块)实施本地化。我可以使用每种语言的一个resx文件,但是由于字符串的数量很长,我想将每种语言的字符串拆分成多个文件。
现在,我有A.resx,还有A.fr.resx和A.de.resx。使用using Project.Localization
,我可以呼叫A.MyString
,它可以在游戏中正确翻译。
但是,我已经在B.fr.resx和B.de.resx中添加了B.resx,虽然我可以在代码中调用B.myotherString
,但是在构建和运行项目时,仅显示A中的字符串已翻译-无论游戏的语言如何,B字符串均使用默认的英语。
快速查看生成的fr/Project.resources.dll
,表明文件A和B的转换后的字符串都在文件中。我不知道我在看什么,但是字符串在那里。
我尝试向A文件和B文件添加不同的名称空间属性,但这似乎只影响代码-如在其中,我不得不将调用更改为NamespaceA.A.MyString
和NamespaceB.B.myotherString
,但是同样的翻译失败发生在游戏中。