Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/02/2013, 13:36
Avatar de u_goldman
u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 11 meses
Puntos: 98
Respuesta: problema constantes repetidas en ficheros de idiomas (Name redefined)

Cita:
Iniciado por red_robe Ver Mensaje
¿nadie? :(
Hola red_robe, me parece que tu problema es más bien conceptual.
  • Constante: Es un identificador cuyo valor no puede ser alterado durante la ejecución de un programa.
  • Variable: Es una referencia a una localidad de memoria cuyo valor es conocido o desconocido y que puede ser alterado durante la ejecución de un programa.

Tu escenario:
  • Estructura de control que asigna valores (if)
  • Contenedores de valores (éstos valores son cambiados en tiempo de ejecución de acuerdo a tu estructura de control)
Simplemente a golpe de vista se ve que tienes que utilizar variables y no constantes.

Acerca del error:
Name redefined - Nombre redefinido
Para ASP clásico, el include es lo primero que el servidor interpretará, por lo tanto, si defines tus variables en cada archivo, lo que el servidor está leyendo es:

Código ASP:
Ver original
  1. 'Español
  2. Dim Bienvenido= "¡Bienvenido!"
  3. 'Inglés
  4. Dim Bienvenido = "Welcome"
  5. 'Francés
  6. Dim Bienvenido = "Accueil"

Esto claramente está mal pues no puedes definir el mismo nombre múltiples veces dentro de un archivo.

La solución

1. Crea un archivo donde definas todas tus variables en inclúyelo antes de tus otros includes, asegúrate que este sea incluído una sola vez:

Código ASP:
Ver original
  1. Dim Bienvenido
  2. Dim QueGustoVerte
  3. Dim HastaPronto
  4.  
  5. <!--#include file = "lang_variables.asp"-->

2. Debajo de este include puedes poner tu if con los demas includes de idiomas, éstos includes no deben dimensionar ninguna variable, solo deben asignar valores

'Archivo español
Bienvenido = "Bienvenido!"

'Archivo inglés
Bienvenido = "Welcome"

'Archivo francés
Bienvenido = "Accueil"

Al final tu estructura debería verse similar a:

Código ASP:
Ver original
  1. <!--#include file = "lang_variables.asp"-->
  2.  
  3. Select case idioma
  4.    case "es"
  5.       <!--#include file='lang_esp.asp'-->
  6.    case "en"
  7.       <!--#include file='lang_eng.asp'-->
  8.    case "fr"
  9.       <!--#include file='lang_fr.asp'-->
  10. End Select

Y eso es todo
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway