none
Variables dentro de una cadena RRS feed

  • Pregunta

  • Buenas a todos!
    Estoy intentando
    agregar idiomas a mi programa. La solución que tengo desarrollada es la siguiente:

    -En la base de datos creo una tabla idiomaMensajes la cual contiene los campos id, idIdioma, texto, textoAux.

    -En el código de vb6 tengo un método que recibe un
    parámetro idIdioma y otro idMensaje que obtiene el mensaje y lo imprime en pantalla.

    If idIdioma > 1 And idMensaje <> -1 Then

    Call TraducirMensaje(idIdioma, idMensaje, AdoCn)

    End If

    Hasta aquí todo funciona bien si el mensaje a traducir no tiene variables dentro. Es decir si no es un mensaje dinámico.

    ESPAÑOL: 'El Marco " & elemento(0) & " ya se encuentra en la Abertura.' PORTUGUES: 'O Marco " & elemento(0) & " já se encontra na Abertura.'

    Cuando pasa esto, obtengo el mensaje en el idioma correspondiente pero lo muestra literalmente como esta escrito arriba. Como podría hacer para reemplazar la variable elemento(0), teniendo en cuenta las limitaciones del lenguaje y que este llega al código como un string completo.
    *Este solo es un ejemplo. Hay mensajes que tienen muchas variables y otros que simplemente no tienen.


    • Editado EmaAldaz viernes, 18 de diciembre de 2020 12:12
    viernes, 18 de diciembre de 2020 12:10

Todas las respuestas

  • Hola, 

    Como supongo que tendrás varios elementos, pues es un array, podrías probar con un replace comprobando primero si está en el mensaje y recorriendo el array:

    For i = 0 To UBound(elemento)
        If InStr(mensaje, "& elemento(" & i & ") &") > 0 Then
            mensaje = Replace(mensaje, "& elemento(" & i & ") &", elemento(i))
        End If
    Next i

    Esto te funcionaría incluso si tuvieses varios elementos en un mismo mensaje.

    Saludos.

    martes, 22 de diciembre de 2020 6:48
  • Tendrías que poner la parte del código de la función TraducirMensaje.

    Si no sustituye el valor de elemento(0) es porque esta´puesto entre comillas y lo toma como una cadena de texto en lugar de una variable.


    Saludos, Javier J

    martes, 22 de diciembre de 2020 9:09