1

フロントエンドにCulturePickerを使用できる一方で、Orchardにバックエンドに固定言語を使用させる方法を探しています。

醜いハッキングを除いて、オーチャードとの最初のプロジェクトであるため、どこから始めればよいのかよくわかりません。

4

1 に答える 1

3

最も簡単な方法は、独自のを実装することICultureSelectorです。

最初に、ユーザーが管理画面を表示しているかどうかを確認する必要があります。その場合は、デフォルトのサイトカルチャを返します。それ以外の場合は、nullを返します(このようにして、次のカルチャセレクタ(この場合はCulturePickerからのもの)が起動します)。

例:

    public class AdminCultureSelector : ICultureSelector {
    private readonly IWorkContextAccessor _workContextAccessor;

    public AdminCultureSelector(IWorkContextAccessor workContextAccessor) {
        _workContextAccessor = workContextAccessor;
    }

    public CultureSelectorResult GetCulture(HttpContextBase context)
    {
        string currentCultureName = _workContextAccessor.GetContext().CurrentSite.SiteCulture;

        if (!String.IsNullOrEmpty(currentCultureName) && AdminFilter.IsApplied(context.Request.RequestContext)) {
            return new CultureSelectorResult { Priority = 1000, CultureName = currentCultureName };
        }

        return null;
    }
}
于 2012-11-09T16:10:39.230 に答える