0
ASP.NET MVC 3プロジェクトでのローカリゼーションの作成方法は?ローカリゼーションの作成方法
私のアプリでは2つの言語を使いたいと思っています。私はそれがResoursesファイルと関係があると聞いていましたが、どういう仕組みか分かりません。
ASP.NET MVC 3プロジェクトでのローカリゼーションの作成方法は?ローカリゼーションの作成方法
私のアプリでは2つの言語を使いたいと思っています。私はそれがResoursesファイルと関係があると聞いていましたが、どういう仕組みか分かりません。
あなたはこのような何かを行うことができます:
Resource.resx
と呼ばれるリソースファイルを追加するには、ローカライズされたリソースAccess Modifier
のドロップダウンをPublic
に変更します。ここでファイルのプロパティを見ると、Custom Tool
プロパティはPublicResXFileCodeGenerator
に設定されます。これにより、コンパイル時にと呼ばれるstatic
class
が作成され、追加するすべての文字列名が作成されます。Name
/Value
個のペアをここに追加してください。Resource.fr-FR.resx
という2番目のリソースファイルを追加します。Values
Resource.NameOfProperty
を使用して、さまざまなローカライズされた文字列にアクセスします。設定されたカルチャに基づいて正しい値を得ることを処理するResourceManager
class
があります。リソースファイルの命名規則に従うだけです。 Resource.{culture-code}.resx
。上記のようなクラスライブラリプロジェクトを作成した後、ここにあなたのMVCアプリケーションでの培養を切り替えるための一つの選択肢です。
あなたの文化がURL経由で
routes.MapRoute(
"DefaultCultureRoute",
"{culture}/{controller}/{action}/{id}",
new
{
culture = "en",
controller = "Home",
action = "Index",
id = UrlParameter.Optional
}
);
を渡すことができるように、コントローラ
public class ApplyCulture : FilterAttribute, IActionFilter
{
public void OnActionExecuted(ActionExecutedContext filterContext)
{
}
public void OnActionExecuting(ActionExecutingContext filterContext)
{
var culture = new System.Globalization.CultureInfo(filterContext.RouteData.GetRequiredString("culture"));
System.Threading.Thread.CurrentThread.CurrentCulture = culture;
System.Threading.Thread.CurrentThread.CurrentUICulture = culture;
}
}
に適用することができ文化を設定するための属性を作成し、このような何かをルートを追加します。
すべてのコントローラが継承するベースコントローラにこの属性を追加します
01リソースへのアクセス[ApplyCulture]
public class BaseController : Controller { }
この
Resource.NameOfProperty
のと同じくらい簡単です