Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Idioma navegador en Variable

Estas en el tema de Idioma navegador en Variable en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos... Estoy limitadisimo por ser novato, pero trato de orientarme para aprender. Tengo la siguiente clase php con la variable $language: Código PHP: ...
  #1 (permalink)  
Antiguo 04/01/2010, 13:18
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Idioma navegador en Variable

Hola a todos...

Estoy limitadisimo por ser novato, pero trato de orientarme para aprender. Tengo la siguiente clase php con la variable $language:

Código PHP:
class user {
    var 
$language "";

Ahora, quisiera que el valor de la variable $language sea el idioma usado por el usuario en su navegador (es, en, de, o el que sea).

Algo como:

Código PHP:
var $language substr($HTTP_ACCEPT_LANGUAGE,0,2); 
pero esto no es posible!

Por favor, alguien podría orientarme?
  #2 (permalink)  
Antiguo 04/01/2010, 13:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Idioma navegador en Variable

lo que sucede es que no puedes usar funciones en las declaraciones de una variable dentro del objeto...

debes hacerlo en el constructor, no mas... además, debes usar la variable $_SERVER para obtener dicho valor... la variable que usas es obsoleta
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/01/2010, 14:36
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Idioma navegador en Variable

Gracias pateketrueke!!!

Algún tutorial o jemplo para leer en español como hacerlo en el "constructor" ?
  #4 (permalink)  
Antiguo 04/01/2010, 14:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Idioma navegador en Variable

en español, usa Google...

pero un buen ejemplo siempre es un trozo de código bien hecho
Código PHP:
class Foo {
  var 
$bar '';
  function 
Foo()
  {
    
$this->bar candy($_DOES['NOTHING']);
  }

bueno, mi código no esta como dicta el estándar de PHP 5, pero funciona... sorry mods!!

por cierto, lee un poco del manual (aunque sea el código)
http://php.net/oop
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 04/01/2010, 14:52
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Gracias nuevamente pateketrueke...

Intentaré aprenderlo y ponerlo en práctica!!!

Saludos!

Bien, estoy leyendo y tratando de captar lo más posible.

Para darle un valor al atributo (variable $language), que me está dando mucho trabajo, lo trato de conseguir por un "Método":

Código PHP:
<?php

class user {
     
     var 
$language '';     

     function 
idioma() {
        
$this->language substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
     }

}

?>
Teoricamente, lo que quiero hacer es darle el valor a la variable del idioma del navegador que usa el usuario. No funciona, pero voy bien?

Agradecido si me siguen orientando o ayudando!

Última edición por paulkees; 05/01/2010 a las 13:42
  #6 (permalink)  
Antiguo 05/01/2010, 12:54
Avatar de bng5  
Fecha de Ingreso: junio-2009
Ubicación: 127.0.0.1
Mensajes: 269
Antigüedad: 14 años, 11 meses
Puntos: 24
Respuesta: Idioma navegador en Variable

Se que no te estoy dando una solución, pero el código de idioma no siempre va a corresponder a los dos primeros caracteres de la cadena $_SERVER['HTTP_ACCEPT_LANGUAGE'] (puede ser un código de hasta 5 caracteres), y el primer idioma de preferencia de el usuario puede que no lo tengas disponible en tu aplicación.

Te recomiendo que primero interpretes el Accept-Language (ya sea por medio de expresiones regulares o explotado la cadena en los ';' y ','). Lo pasas a un array y buscás la primer correspondencia entre tus idiomas disponibles y los idiomas del usuario.
  #7 (permalink)  
Antiguo 05/01/2010, 13:05
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Idioma navegador en Variable

Si bng5 es cierto, pero tengo un idioma por defecto!

Pero por ahora lo que necesito, es ir viendo si le puedo pasar el valor del idioma del navegador a la variable $language por ese método... vamos, saber si estoy orientado en la construcción del método!
  #8 (permalink)  
Antiguo 05/01/2010, 13:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Idioma navegador en Variable

el método es correcto, pero te recuerdo que nada se ejecuta por arte de magia en ningún lenguaje...

osea, de algún modo debes invocar dicho método... ya sea en el constructor, o bien, después de instanciar el objeto
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 05/01/2010, 13:41
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Idioma navegador en Variable

Hola pateketrueke

La variable la quiero utilizar de esta forma:

Código PHP:
class user {
     
     var 
$language '';     

     function 
idioma() {
        
$this->language substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
     }
 
     function 
mensajes() {
     switch (
$this->language) {
    case 
"es":
        break;

    case 
"en":
        break;

        case default:
        
        }

  #10 (permalink)  
Antiguo 05/01/2010, 13:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Idioma navegador en Variable

entiendo, pero debes ejecutar tu método idioma() para tener lista tu variable antes del switch...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 05/01/2010, 13:58
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Idioma navegador en Variable

Por favor, me podrias orientar o dar un ejemplo respecto a lo de ejecutar el método idioma() ?
  #12 (permalink)  
Antiguo 05/01/2010, 15:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Idioma navegador en Variable

$obj->idioma();

Sí es dentro del objeto $this->idioma();

Saludos.

Última edición por GatorV; 05/01/2010 a las 16:00
  #13 (permalink)  
Antiguo 05/01/2010, 16:38
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Idioma navegador en Variable

Gracias GatorV, pero la verdad no me doy cuenta como hacerlo dentro de la clase...

Código PHP:
class user {
     
     var 
$language '';     

     function 
idioma() {
        
$this->language substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
     }
 
     function 
mensajes() {
     switch (
$this->language) {
    case 
"es":
        break;

    case 
"en":
        break;

        case default:
        
        }

  #14 (permalink)  
Antiguo 05/01/2010, 16:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Idioma navegador en Variable

por favor, lee la documentación y reflexiona lo que estas haciendo...
Código PHP:
function mensajes()
{
  
$this->idioma();
  
// ...

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 05/01/2010, 17:00
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Idioma navegador en Variable

Muchas gracias por los ejemplos y la ayuda, la verdad estoy aprendiendo mucho!

Pregunté como ponerlo en la clase, por que ya lo había puesto como dice pateketrueke, así:

Código PHP:
function mensajes()
{
  
$this->idioma();
  
// ...

y no funciona... seguiré investigando y probando

Gracias nuevamente y no quiero agobiarlos más!
  #16 (permalink)  
Antiguo 05/01/2010, 18:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Idioma navegador en Variable

Si lees el enlace que te dejo pateketrueke viene muy bien explicado como puedes hacer esas tareas en el constructor.

Saludos.
  #17 (permalink)  
Antiguo 06/01/2010, 00:24
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Idioma navegador en Variable

Sí, gracias GatorV... voy a leer bien varias veces el manual que me dió pateketrueke, ahí me tendre que dar cuenta de las fallas y de paso aprendo más cosas.

Muchas gracias nuevamente!

Etiquetas: navegadores, variables, idiomas
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 05:52.