2

ユーザーに一括メールを送信する必要がありますが、言語設定が異なります。電子メール メッセージは、リソース ファイル内にあります: Email.resx、Email.fr.resx

どちらか一方から文字列を強制的に取得するにはどうすればよいですか? たとえば、en-CA カルチャでログインしているが、フランス語のメールを送信したいとしますか?

私は試した:

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("fr-CA");

System.Resources.ResourceSet rSet = Resources.Emails.ResourceManager.GetResourceSet(ci ,true, false);

string bodyMessageResource = rSet.GetString("EmailBody");

しかし、rSet は null です。

選択した言語の文字列を選択できるようにしたいだけです。

4

4 に答える 4

4

あなたはほとんどそこにいたと思います。これを試して:

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("fr-CA");
ResourceManager resourceManager = new ResourceManager("MyResource", Assembly.GetExecutingAssembly());
string bodyMessageResource = resourceManager.GetString("EmailBody", ci);
于 2012-04-12T13:02:02.387 に答える
1

私はあなたのリソースの完全な名前空間を使用するように挿入します私はそれを明確にするためにほぼ3時間そこに立ち往生していました; スレッドを使用して現在のカルチャ情報を設定します。

Application.CurrentCulture = new System.Globalization.CultureInfo("fr");
System.Threading.Thread.CurrentThread.CurrentUICulture = Application.CurrentCulture;
ResourceManager resourceManager = new ResourceManager("ProjectName.ResourcesFolder.MainApplicationResource", System.Reflection.Assembly.GetExecutingAssembly());
string msg = resourceManager.GetString("yourResourcedMsgName");
于 2013-02-25T20:52:50.697 に答える