我在基页中完成了Override 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() 在主页面它很棒!但是,当我把它放在基页而不是。 有什么问题?
答案 0 :(得分:2)
如果要为整个 ASP.NET站点设置文化,那么可以在web.config
文件中执行此操作:
<globalization uiCulture="Fa-IR" culture="Fa-IR" />
请参阅Localization Made Easy文章。
答案 1 :(得分:2)
我发现用最后一行初始化基类方法并不常见。我的第一个赌注是,这会覆盖你的文化初始化。但我测试了它 - 这不是问题。无论如何,你的代码应该可以工作。
您确定代码中没有文化初始化的其他地方吗? 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