0

「メイン」というプロジェクトがあります。このプロジェクトでは、すべてのリソースは 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;
    }
}

そのプロジェクトではすべてが正しく読み込まれています。これで、「ホーム」という 2 番目のプロジェクトができました。そのプロジェクトでは、traduction クラスをリンクとして追加しました。ご覧のとおり、トランスレータ コンストラクタは、「メイン」プロジェクトのサブフォルダ「リソース」にリソースをロードするようにビルドされています。「ホーム」プロジェクトの 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