Foros del Web » Programando para Internet » ASP Clásico »

Problema con este include

Estas en el tema de Problema con este include en el foro de ASP Clásico en Foros del Web. Hola: Tengo un foro que pretendo que según el visitante cambie de lenguaje y no me puedo creer que esto falle: El código original es: ...
  #1 (permalink)  
Antiguo 27/11/2005, 11:23
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
Problema con este include

Hola:
Tengo un foro que pretendo que según el visitante cambie de lenguaje y no me puedo creer que esto falle:
El código original es:
Código HTML:
<!-- #include file = "language_files/language_file_inc.asp" -->
<!--#include file="includes/ads_inc.asp" -->
.... y sigue lo demás ....
Yo lo he modificado así:
Código HTML:
<%
Dim pais, lang
pais = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
lang = Left(pais, 2)
if lang = "en" then
%>
<!-- #include file = "language_files/language_file_incen.asp" -->
<% else %>
<!-- #include file = "language_files/language_file_inces.asp" -->
<% end if %>
<!--#include file="includes/ads_inc.asp" --> 
Pero da error '800a0411' nombre redefinido en
Const strTxtWelcome = "Bienvenido"
------^

Si le pongo directamente
Código HTML:
<!-- #include file = "language_files/language_file_inces.asp" -->
<!--#include file="includes/ads_inc.asp" --> 
Funciona perfectamente.

No me lo puedo creer, esta misma forma la tengo en otra parte de la web con más idiomas y funciona, .
Qué es lo que pasa aquí ??

Salu2
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #2 (permalink)  
Antiguo 27/11/2005, 14:17
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Si, porque si traduces lo que estas haciendo tendrias algo asi:

Código:
if condicion then
  Const algo = valor
else
  Const algo = valor
end if
Los includes como su nombre lo dice, se incluyen en el codigo, por lo tanto tienes redefinido este valor.

Trata quitandole las definiciones, se que es algo inconsistente, pero es lo mas facil.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 27/11/2005, 14:18
 
Fecha de Ingreso: noviembre-2005
Mensajes: 9
Antigüedad: 18 años, 6 meses
Puntos: 0
pregunta

hola, yo tengo una duda con el uso de los includes al utitlizarlos como lo haces tu para los idiomas. De lo que preguntas no tengo ni idea en esto de lo sincludes soy nueva jijij :) Ahi va la pregunta...

Yo puedo recuperar campos del formulario alojado en la pagina principal en la pagina que incluyo??
Muchas gracias ,
  #4 (permalink)  
Antiguo 27/11/2005, 14:21
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Si puedes.
-----------------req_form.asp--------------------------
for each item in request.form
response.write item & "= " & request.form(item) & "<br>"
next

----------------------------------------------


<!--#include file = "req_form.asp"-->
<%
'codigo
%

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 27/11/2005, 14:29
 
Fecha de Ingreso: noviembre-2005
Mensajes: 9
Antigüedad: 18 años, 6 meses
Puntos: 0
si es en cliente se haria igual?? Lo que quiero es cambiarle el valor a la caja de texto que contiene el idioma cuando pinche en el boton.
  #6 (permalink)  
Antiguo 27/11/2005, 15:34
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Ahora si no te entendi...
ASP se ejecuta en el servidor, asi que me temo que lo que quieres hacer no es posible de esta manera, pero se puede con javascript, cambias los valores del formulario que tengas que cambiar y envias la forma, en el servidor se procesa y elige el idioma de acuerdo a la opcion que llegue de la forma.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 27/11/2005, 15:45
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
Bien u_goldman, como le quito las definiciones?
si el lenguaje ="en" incluye un archivo, si no, otro

Este mismo sistema lo tengo con 5 idiomas y va bien , pero este es para el foro y no quiere tirar.
No se que le pasa.
Salu2
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #8 (permalink)  
Antiguo 27/11/2005, 15:51
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
A ver, en lugar de utilizar

Const algo = valor

utiliza

algo = valor

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 27/11/2005, 17:10
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
me has dejado igual
algo =valor
pues yo tengo lang="en"

salu2
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #10 (permalink)  
Antiguo 27/11/2005, 17:18
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Cita:
Pero da error '800a0411' nombre redefinido en
Const strTxtWelcome = "Bienvenido"
------^
Ese es el error cierto?

Lo unico que te digo es que le quites el prefijo const.
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 27/11/2005, 17:25
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
No..... ahi no esta el error, esa linea está dentro del language_file_inces.asp
si le quito const me dará error en la siguiente linea que empieza igual y tiene mas de 1000 const.
El error es en la forma de hacer los includes , si lo pongo directo sin que condiciole el lenguaje, funciona bien y no da ningun error.
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #12 (permalink)  
Antiguo 27/11/2005, 17:34
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Si, porque como te dije anteriormente si traduces lo que tienes en los includes, es como si tu archivo tuviera dos definiciones para la misma constante...
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #13 (permalink)  
Antiguo 27/11/2005, 17:45
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
Puede ser, porque en la otra forma que comenté, las traducciones estan con una sola palabra="lo que sea".
Renombraré masivamente los const aunque el foro tiene casi 200 archivos y es posible que falle despues algo.

Gracias por tus respuestas

Salu2
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #14 (permalink)  
Antiguo 27/11/2005, 17:49
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Asi es, en realidad en mi opinion nunca debieron ser constantes, pues pierde un poco el concepto, en realidad deben ser variables, ya que su valor cambia dependiendo del valor del idioma seleccionado.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #15 (permalink)  
Antiguo 28/11/2005, 12:41
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
Pues no funciona ... da error de variable no definida en la misma linea (después hay como unas 1000 más) y es un lio modificar todo.
Había algo que se podia hacer con server.execute , miraré por ahí a ver si lo encuentro.

salu2
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #16 (permalink)  
Antiguo 28/11/2005, 12:43
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Tienes la directiva option explicit? si es asi, quitala

No podras hacerlo con server.execute, eso sirve para ejecutar un codigo, pero no esas variables no tendran un valor que puedas utilizar despues de invocar este metodo.
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #17 (permalink)  
Antiguo 28/11/2005, 14:27
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
Si esta puesto <% Option Explicit %> en la primera linea.
Ya pensé en quitarla , pero como había destrozado el foro y no funcionaba, restauré una copia de seguridad y no quise seguir en ese momento,

No hay ninguna otra forma de hacer lo que pretendo?

Salu2
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #18 (permalink)  
Antiguo 28/11/2005, 14:34
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Es que el problema es exactamente el mismo que al principio...
De nueva cuenta:

Si haces un include, quiere decir que estas incluyendo este codigo en el archivo, es decir, el include se vuelve parte del archivo, si traduces lo que estas haciendo resulta

Código:
if condicion
 'como este es el include se ejecuta primero
 dim variable1
else
 'como este es el include se ejecuta primero
 dim variable1
end if
Lo cual arroja una excepcion pues no puedes dimensionar dos variables con el mismo nombre en un solo archivo verdad?

Quita el option explicit, no uses prefijos const ni dim, pues eso supone que estas dimensionando las constantes o variables mas de una vez dentro del mismo archivo, cosa que no es permitido...
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #19 (permalink)  
Antiguo 29/11/2005, 02:27
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
Pues lleva opcion explicit en casi todos los archivos y son muchos y muchos Const , al final no da nada más que errores.
imposible modificar este foro así.

Mira a ver algo parecido a esto si puede funcionar:
Código HTML:
<%

Dim pais, lang
pais = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
lang = Left(pais, 2)

archivo="language_files/language_file_inc"&lang&".asp"""
%>
<!--#include file="<%='&archivo&'%>" --> 
o
<!--#include file="language_files/language_file_inc<%='&lang&'%>.asp" -->
Salu2
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:49.