0

我们有一个名为“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");
}
4

0 回答 0