具有固定后端语言的多语言Orchard站点?

时间:2012-11-09 13:10:37

标签: asp.net .net asp.net-mvc localization orchardcms

我正在寻找一种方法来强制Orchard为后端使用固定语言,同时仍然可以使用CulturePicker作为前端。

任何暗示都会受到高度赞赏 - 作为我在Orchard的第一个项目我真的不知道从哪里开始 - 除了丑陋的黑客......

1 个答案:

答案 0 :(得分:2)

最简单的方法是实现自己的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;
    }
}