3

Web マスターが実行時に新しい言語を作成できるようにする多言語機能を備えた ASP.NET Web アプリケーションを開発しています。

私が考えていたアプローチは次のとおりです。

  1. ユーザーは、使用可能な (作成されていない) 言語を 1 つ選択します。
  2. ユーザーが確認すると、アプリケーションは既存のリソースのセットを自動的にコピーし、ファイル名を新しいカルチャに置き換えます。例: default.aspx.en-us.resx から default.aspx.es-ar.resx。
  3. ユーザーは、最近作成されたリソースを編集します。

現在、ステップ 2 で問題が発生しています。リソースをコピーすることはできましたが、これらの新しいリソースは無視されます。これは、新しいリソースが実行中のアセンブリに含まれていないため、無視されているためだと思います。

ローカル プロジェクトで次のコードをテストするときは、ソリューションに新しいリソースを手動で追加し、再コンパイルして機能させる必要があります。

これを機能させる方法を知っている人はいますか?

これは、言及されたコピーのコードです。

string _dir = path_ + "App_LocalResources\\\\";
DirectoryInfo _dirInfo = new DirectoryInfo(_dir);

foreach (FileInfo _file in _dirInfo.GetFiles("*en-us.resx")) {
_file.CopyTo(_dir + _file.Name.Replace("en-us", idioma_.Cultura));

}

string _dir2 = path_ + "App_GlobalResources\\\\";
_dirInfo = new DirectoryInfo(_dir2);

foreach (FileInfo _file in _dirInfo.GetFiles("*en-us.resx")) {
_file.CopyTo(_dir2 + _file.Name.Replace("en-us", idioma_.Cultura));
}

どうもありがとうございました。

4

1 に答える 1

0

リソース ファイルの作成または編集は、データの読み取りと同じ方法ではできません。リソース ファイルを作成または編集するには、XML ファイルを作成または編集するのと同じ方法で行う必要があります。これは、リソース ファイルには特定の構造化 XML 要素が含まれているためです。

たぶん、この記事はあなたを助けるでしょう...

于 2012-09-24T12:44:44.630 に答える