我在基页中覆盖了InitializeCulture。
Protected Overrides Sub InitializeCulture()
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("Fa-IR")
Thread.CurrentThread.CurrentUICulture = New CultureInfo("Fa-IR")
MyBase.InitializeCulture()
End Sub
但我的文化仍然是美国英语。 而且文本还是英文,不是波斯文。
我想以编程方式更改它。我拥有本地和全局英语和波斯语资源。我想在它们之间切换。 我该如何修复它?
当我放置 Protected Overrides Sub InitializeCulture() 时 在主页上效果很好!但当我把它放在基页中时则不然。 有什么问题吗?
最佳答案
我发现用最后一行初始化基类方法并不常见。我的第一个赌注是,这会覆盖你的文化初始化。但我测试过 - 这不是问题。无论如何,您的代码应该可以工作。
您确定您的代码中没有其他地方具有区域性初始化吗? CurrentThread 是一个全局变量,如果您在其他地方(在 Web 控件中?在数据层中?)更改它,这将影响您的页面。
这是我的示例代码,适用于德语/英语。它也应该适用于波斯语/英语。
Partial Public Class _Default
Inherits BasePage
End Class
Public Class BasePage
Inherits System.Web.UI.Page
Protected Overrides Sub InitializeCulture()
MyBase.InitializeCulture()
Dim cultureInfo = New CultureInfo("de-DE")
Thread.CurrentThread.CurrentCulture = cultureInfo
Thread.CurrentThread.CurrentUICulture = cultureInfo
End Sub
End Class
关于.net - 文化变化带来的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3491607/