我有一个更改显示语言的表单。我想根据String变量从不同的资源文件加载字符串,如下所示:
Public Class frm_Main
Dim language As String = ""
Private Sub cb_lang_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cb_lang.SelectedIndexChanged
language = cb_lang.SelectedText
lbl_Country.Text = My.Resources.english.country ' Replace "english" with language value
lbl_Language.Text = My.Resources.english.language ' Same
End Sub
End Class
cb_lang包含“english”和“spanish”。 有两个文件,“english.resx”和“spanish.resx”。
我该怎么做?
答案 0 :(得分:1)
有两个文件," english.resx"和" spanish.resx"
首先将两个文件重命名为MyProject.resx
以获取默认文化,并将MyProject.es.resx
或MyProject.en.resx
重命名为翻译版本。
资源设计器文件是XML,但是当你编译(或者#34;运行自定义工具"它)时,它会创建/更新一个实际的资源类 - 这就是你所拥有的对象访问代码。
该对象具有CultureInfo
属性,您可以将其设置为您想要的任何CultureInfo
;根据文化代码正确命名的资源文件,框架将使用它来确定从哪个资源文件获取资源键值。
所以你需要做的就是将你的下拉值映射到CultureInfo
个实例。
My.Resources.MyProject.Culture = SomeCultureDictionary(cb_lang.SelectedText)
lbl_Country.Text = My.Resources.MyProject.Country
lbl_Language.Text = My.Resources.MyProject.Language