none
(Ayuda) Detectar mi lenguaje guardado cultura RRS feed

  • Pregunta

  • Hola, 

    Estoy utilizando las traducciones Thread.CurrentThread.CurrentCulture

    Mi problema es, que cuando yo selecciono el idioma inglés, la aplicación guarda dicha cultura como en-US en My.Setting. El problema lo tengo en cuando cargo mi app, siempre se abre en español,

    Tengo los siguientes ficheros.

    Lenguage  (español)

    Lenguage.es-ES

    Lenguage.en-US

    Lenguage.fr-FR

    Los My.Setting lo guardo como es-ES y así...

    ¿Cómo puedo detectar desde un modulo cargando el submain para detectar dicho idioma y que lo detecte toda la aplicación?

    miércoles, 12 de junio de 2019 14:13

Respuestas

  • Hola. lo primero es que en tu aplicativo se establezca como objeto de inicio un método Sub Main (debes agregar un módulo a tu proyecto). Para establecer como inicio el Main puedes ver Cómo: Cambiar el objeto inicial de una aplicación (Visual Basic)

    Luego el código sería algo así

    Imports System.Globalization
    
    Module SubMain
        <STAThread()>
        Public Sub Main()
    
            Application.EnableVisualStyles()
            Application.SetCompatibleTextRenderingDefault(False)
            Dim culture As CultureInfo = New CultureInfo(My.Settings.LanguageCode)
    
            System.Threading.Thread.CurrentThread.CurrentCulture = culture
            System.Threading.Thread.CurrentThread.CurrentUICulture = culture
    
            Application.Run(New Form1)
    
    
        End Sub
    End Module
    


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta Symantecc jueves, 13 de junio de 2019 10:07
    jueves, 13 de junio de 2019 8:23

Todas las respuestas

  • Al principio del sub main y antes de abrir el primer form, lee el valor guardado en My.Settings y con él construye un New CultureInfo y asígnaselo a Thread.CurrentThread.CurrentCulture.
    miércoles, 12 de junio de 2019 15:48
  • ¿Cómo sería el código? No entiendo mucho de esto de los lenguajes.

    Gracias..

    miércoles, 12 de junio de 2019 16:10
  • No se desarrollar esto.
    jueves, 13 de junio de 2019 7:29
  • Hola. lo primero es que en tu aplicativo se establezca como objeto de inicio un método Sub Main (debes agregar un módulo a tu proyecto). Para establecer como inicio el Main puedes ver Cómo: Cambiar el objeto inicial de una aplicación (Visual Basic)

    Luego el código sería algo así

    Imports System.Globalization
    
    Module SubMain
        <STAThread()>
        Public Sub Main()
    
            Application.EnableVisualStyles()
            Application.SetCompatibleTextRenderingDefault(False)
            Dim culture As CultureInfo = New CultureInfo(My.Settings.LanguageCode)
    
            System.Threading.Thread.CurrentThread.CurrentCulture = culture
            System.Threading.Thread.CurrentThread.CurrentUICulture = culture
    
            Application.Run(New Form1)
    
    
        End Sub
    End Module
    


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta Symantecc jueves, 13 de junio de 2019 10:07
    jueves, 13 de junio de 2019 8:23
  • Hola Sergio, muchas gracias por tu respuesta. Como no uso en si My.Settings uso algo mas personalizado para la configuracion, me arroja este error en New CultureInfo


    Error BC30519 Error de resolución de sobrecarga porque no se puede llamar a ninguna de las funciones 'New' a las que se tiene acceso sin una conversión de restricción:
        'Public Overloads Sub New(name As String)': El parámetro 'name' correspondiente al argumento se reduce de 'Object' a 'String'.
        'Public Overloads Sub New(culture As Integer)': El parámetro 'culture' correspondiente al argumento se reduce de 'Object' a 'Integer'

    ¿Cómo podría solucionarlo?

    jueves, 13 de junio de 2019 9:46
  • Hola, puedes mostrar el código afectado? Muchas gracias

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    jueves, 13 de junio de 2019 9:51