在运行时本地化资源

瓦洛

我设法在运行时转换了WPF应用程序,但是.resx中的字符串无法转换。

我有一个Login.resx和Login-pt.resx,它们都有一个具有不同值的“ prueba”条目,但它们始终加载默认的resx(Login.resx)。

Private Sub btnAr_Click (sender As System.Object, e As System.EventArgs) Handles btnAr.Click
    Thread.CurrentThread.CurrentCulture =
        CultureInfo.CreateSpecificCulture("es-AR")
    Thread.CurrentThread.CurrentUICulture = New CultureInfo("es-AR")
    ChangeLanguage("es-AR")
    MessageBox.Show(Login.Prueba)
End Sub


Private Sub btnPt_Click(sender As System.Object, e As System.EventArgs) Handles btnPt.Click
    Thread.CurrentThread.CurrentCulture =
      CultureInfo.CreateSpecificCulture("pt-BR")
    Thread.CurrentThread.CurrentUICulture = New CultureInfo("pt-BR")
    ChangeLanguage("pt-BR")
    MessageBox.Show(Login.Prueba)
End Sub

Private Sub ChangeLanguage(ByVal lang As String)
    For Each c As Control In Me.Controls
        Dim resources As ComponentResourceManager = New     ComponentResourceManager(GetType(LoginUsuario))
        resources.ApplyResources(c, c.Name, New CultureInfo(lang))
    Next c
End Sub

谢谢!

用户名

我认为您的资源名称Login-pt.resx是错误的。它应该是Login.pt.resxLogin.pt-BR.resx

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章