【问题标题】:Set a culture on c# backend page在 c# 后端页面上设置文化
【发布时间】:2014-09-23 17:39:56
【问题描述】:

我正在尝试在 .aspx.cs 页面的 Page_Load 中设置文化和文化 ui。我试过了

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fr-CA");

CultureInfo ci = new CultureInfo("fr-CA");
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;

Culture = "fr-CA";
UICulture = "fr-CA";

但它们都不起作用。 有谁知道如何设置culture和uiculture?

谢谢!

【问题讨论】:

  • 您预计会发生什么以及发生了什么?你是怎么测试的?
  • @ErnodeWeerd 我正在使用 resx 文件,这些文件使用当前文化以所需语言显示页面

标签: c# culture uiculture


【解决方案1】:

我找到了解决方案:覆盖 InitializeCulture。这是我合并 cookie 并使用当前 cookie 设置页面语言时的样子。

protected override void InitializeCulture()
    {

        HttpCookie cookie = Request.Cookies["CurrentLanguage"];
        if (!IsPostBack && cookie != null && cookie.Value != null)
        {
            if (cookie.Value.ToString() == "en-CA")
            {
               // currently english
                System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-CA");
                System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-CA");
                base.InitializeCulture();
            }
            else
            {
               //currently french
                System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fr-CA");
                System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-CA");
                base.InitializeCulture();
            }
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多