我们有一个名为“Main”的项目。在这个项目中,我们所有的资源都在一个名为 Ress 的文件夹中。当我们调用这些资源时,我们使用的是我们制作的 Translator 类。
public class Translator
{
ResourceManager m_ressourceManager;
string m_completeRessourceName;
public Translator(string ressourceName)
{
m_completeRessourceName = String.Format("Main.Ressources.{0}", ressourceName);
m_ressourceManager = new ResourceManager(m_completeRessourceName, Assembly.GetExecutingAssembly());
}
public string GetString(string name)
{
string retString = "";
try
{
retString = m_ressourceManager.GetString(name);
}
catch
{
retString = m_completeRessourceName + "." + name;
}
return retString;
}
}
该项目中的所有内容都正确加载。现在我们有了第二个项目,叫做“Home”。在那个项目中,我添加了traduction类作为链接。如您所见,我们的翻译器构造函数被构建为在“Main”项目的子文件夹“Ressources”中加载资源。对于“主页”项目中的 about.aspx 页面,我在 Main/Ressources 中创建了一个名为 About.en-CA.resx 的资源文件。执行代码时,我没有收到任何错误,但没有加载资源。两个项目已重建。
protected override void setPageTranslator()
{
base.setPageTranslator();
m_pageTranslator = new Translator("About");
}
protected override void LoadStrings()
{
m_aboutTitle.Text = m_pageTranslator.GetString("AboutTitle");
}