Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problema con locale

175 views
Skip to first unread message

Maykel Franco

unread,
Sep 25, 2013, 5:00:01 AM9/25/13
to
Hola buenas, he definido locale para usar es_ES.UTF-8. El problema es
que necesito definirla también para es en alias, que ya está, de tal
forma que cuando ejecutes desde PHP:

root@server:~# php -r 'var_dump(setlocale(LC_ALL, "es"));'
string(2) "es"

Devuelva es. Lo estoy configurando en otro equipo y he hecho
exactamente lo mismo, que es esto:

export LANGUAGE=es_ES.UTF-8
export LANG=es_ES.UTF-8
export LC_ALL=

locale-gen

dpkg-reconfigure locales (creo que hace más o menos lo mismo que locale-gen)

Y he verificado que en /etc/locale.alias esté:

es es_ES.UTF-8

Sin embargo, desde el nuevo server:

root@pc:~# php -r 'var_dump(setlocale(LC_ALL, "es"));'
bool(false)

Y tiene aparentemente todo igual...Qué se me puede estar escapando?

Saludos.


--
To UNSUBSCRIBE, email to debian-user-s...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/CAJ2aOA9Q2m_OEu8taMTzXnAxnfYQf6ßXQUY3fgW...@mail.gmail.com

Camaleón

unread,
Sep 25, 2013, 10:40:02 AM9/25/13
to
El Wed, 25 Sep 2013 10:53:37 +0200, Maykel Franco escribió:

> Hola buenas, he definido locale para usar es_ES.UTF-8. El problema es
> que necesito definirla también para es en alias, que ya está, de tal
> forma que cuando ejecutes desde PHP:
>
> root@server:~# php -r 'var_dump(setlocale(LC_ALL, "es"));'
> string(2) "es"
>
> Devuelva es. Lo estoy configurando en otro equipo y he hecho exactamente
> lo mismo, que es esto:

(...)

> Sin embargo, desde el nuevo server:
>
> root@pc:~# php -r 'var_dump(setlocale(LC_ALL, "es"));'
> bool(false)
>
> Y tiene aparentemente todo igual...Qué se me puede estar escapando?

Antes de nada, ejecuta "locale -a" para comprobar que se haya generado
correctamente el alias en el sistema.

Si el sistema lo reconoce pero php no, entonces tendrías que buscar a ver
de dónde toma php estas variables o si te falta configurar algo en la
parte de php, recargar la configuración...

Saludos,

--
Camaleón


--
To UNSUBSCRIBE, email to debian-user-s...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/pan.2013.09...@gmail.com

Maykel Franco

unread,
Sep 27, 2013, 3:40:02 AM9/27/13
to
Gracias por contestar Camaleón, en esta maquina es donde no me la reconoce:

root@pc:~# locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
es_AR.utf8
es_BO.utf8
es_CL.utf8
es_CO.utf8
es_CR.utf8
es_DO.utf8
es_EC.utf8
es_ES
es_ES.iso88591
es_ES.utf8
es_GT.utf8
es_HN.utf8
es_MX.utf8
es_NI.utf8
es_PA.utf8
es_PE.utf8
es_PR.utf8
es_PY.utf8
es_SV.utf8
es_US.utf8
es_UY.utf8
es_VE.utf8
POSIX

Y esta maquina es donde si lo engancha php:

root@moriarty:~# locale -a
C
de_DE.utf8
en_AG
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_NG
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
es_AR.utf8
es_BO.utf8
es_CL.utf8
es_CO.utf8
es_CR.utf8
es_DO.utf8
es_EC.utf8
es_ES.utf8
es_GT.utf8
es_HN.utf8
es_MX.utf8
es_NI.utf8
es_PA.utf8
es_PE.utf8
es_PR.utf8
es_PY.utf8
es_SV.utf8
es_US.utf8
es_UY.utf8
es_VE.utf8
fr_FR.utf8
it_IT.utf8
nl_NL.utf8
POSIX
pt_PT.utf8
ru_RU.utf8


Reinicié la máquina y demás pero sigue sin cogerlo....


--
To UNSUBSCRIBE, email to debian-user-s...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/CAJ2aOA-0nTTmP4+TeZdYJ89E...@mail.gmail.com

Camaleón

unread,
Sep 27, 2013, 9:50:03 AM9/27/13
to
El Fri, 27 Sep 2013 09:37:13 +0200, Maykel Franco escribió:

> El día 25 de septiembre de 2013 16:33, Camaleón <noel...@gmail.com>
> escribió:

(...)

>>> Sin embargo, desde el nuevo server:
>>>
>>> root@pc:~# php -r 'var_dump(setlocale(LC_ALL, "es"));'
>>> bool(false)
>>>
>>> Y tiene aparentemente todo igual...Qué se me puede estar escapando?
>>
>> Antes de nada, ejecuta "locale -a" para comprobar que se haya generado
>> correctamente el alias en el sistema.
>>
>> Si el sistema lo reconoce pero php no, entonces tendrías que buscar a
>> ver de dónde toma php estas variables o si te falta configurar algo en
>> la parte de php, recargar la configuración...
>
> Gracias por contestar Camaleón, en esta maquina es donde no me la
> reconoce:
>
> root@pc:~# locale -a
> C
(...)
> es_ES
> es_ES.iso88591
> es_ES.utf8
(...)

Ostras, cuántas locales :-)

Pero, hum... no veo la que has generado con el alias ("es"). Está la
"es_ES" ¿es esa la correcta?

> Y esta maquina es donde si lo engancha php:
>
> root@moriarty:~# locale -a
> C

(...)

Pues aquí tampoco aparece el alias "es", así que me decanto porque la
diferencia en la salida de los comandos esté en la configuración de PHP
de los dos equipos.

> Reinicié la máquina y demás pero sigue sin cogerlo....

No debería ser necesario reiniciar.

Maykel Franco

unread,
Nov 28, 2013, 9:30:02 AM11/28/13
to
Esto no lo conseguí solucionar. El tema es que un programador quiere
usar el alias es en vez de es_ES, no me preguntéis por que, pero
quiere que sea así, y cuando le lanzas por ejemplo el comando desde
php:

php -r 'setlocale(LC_ALL, "es"); echo strftime("%B"), PHP_EOL;
setlocale(LC_ALL, "en"); echo strftime("%B"), PHP_EOL;'

November
November

Quiere que le devuelva Noviembre, en vez de November.

Ahora mismo está definido así:

root@:~# locale
LANG=es_ES.UTF-8
LANGUAGE=es_ES.UTF-8
LC_CTYPE="es_ES.UTF-8"
LC_NUMERIC="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_COLLATE="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_MESSAGES="es_ES.UTF-8"
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"
LC_ALL=es_ES.UTF-8


root@:~# locale -a
C
C.UTF-8
es_AR.utf8
es_BO.utf8
es_CL.utf8
es_CO.utf8
es_CR.utf8
es_CU
es_CU.utf8
es_DO.utf8
es_EC.utf8
es_ES
es_ES.iso88591
es_ES.utf8
es_GT.utf8
es_HN.utf8
es_MX.utf8
es_NI.utf8
es_PA.utf8
es_PE.utf8
es_PR.utf8
es_PY.utf8
es_SV.utf8
es_US.utf8
es_UY.utf8
es_VE.utf8
POSIX



En /etc/locale.alias he añadido "es es_ES.UTF-8" :


bokmal nb_NO.ISO-8859-1
bokm�l nb_NO.ISO-8859-1
catalan ca_ES.ISO-8859-1
croatian hr_HR.ISO-8859-2
czech cs_CZ.ISO-8859-2
danish da_DK.ISO-8859-1
dansk da_DK.ISO-8859-1
deutsch de_DE.ISO-8859-1
dutch nl_NL.ISO-8859-1
eesti et_EE.ISO-8859-1
estonian et_EE.ISO-8859-1
finnish fi_FI.ISO-8859-1
fran�ais fr_FR.ISO-8859-1
french fr_FR.ISO-8859-1
galego gl_ES.ISO-8859-1
galician gl_ES.ISO-8859-1
german de_DE.ISO-8859-1
greek el_GR.ISO-8859-7
hebrew he_IL.ISO-8859-8
hrvatski hr_HR.ISO-8859-2
hungarian hu_HU.ISO-8859-2
icelandic is_IS.ISO-8859-1
italian it_IT.ISO-8859-1
japanese ja_JP.eucJP
japanese.euc ja_JP.eucJP
ja_JP ja_JP.eucJP
ja_JP.ujis ja_JP.eucJP
japanese.sjis ja_JP.SJIS
korean ko_KR.eucKR
korean.euc ko_KR.eucKR
ko_KR ko_KR.eucKR
lithuanian lt_LT.ISO-8859-13
no_NO nb_NO.ISO-8859-1
no_NO.ISO-8859-1 nb_NO.ISO-8859-1
norwegian nb_NO.ISO-8859-1
nynorsk nn_NO.ISO-8859-1
polish pl_PL.ISO-8859-2
portuguese pt_PT.ISO-8859-1
romanian ro_RO.ISO-8859-2
russian ru_RU.ISO-8859-5
slovak sk_SK.ISO-8859-2
slovene sl_SI.ISO-8859-2
slovenian sl_SI.ISO-8859-2
spanish es_ES.ISO-8859-1
swedish sv_SE.ISO-8859-1
thai th_TH.TIS-620
turkish tr_TR.ISO-8859-9
de de_DE.UTF-8
fr fr_FR.UTF-8
it it_IT.UTF-8
nl nl_NL.UTF-8
pt pt_PT.UTF-8
ru ru_RU.UTF-8
es es_ES.UTF-8


La verdad es que no sé que más hacer, me recorrido todo google...El
caso es que en un ubuntu 10.04 sí que funciona:

root@moriarty:~# php -r 'setlocale(LC_ALL, "es"); echo strftime("%B"),
PHP_EOL; setlocale(LC_ALL, "en"); echo strftime("%B"), PHP_EOL;'
noviembre
noviembre

Sus locales:

ro...@ubuntu-10.04-lts:~# locale -a
ro...@ubuntu-10.04-lts:~# locale
LANG=es_ES.UTF-8
LANGUAGE=
LC_CTYPE="es_ES.UTF-8"
LC_NUMERIC="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_COLLATE="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_MESSAGES="es_ES.UTF-8"
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"
LC_ALL=

Lleva tiempo configurado ese ubuntu y por más que miro la config no
veo nada diferente...Excepto el LC_ALL y el LANGUAGE pero también los
he cambiado con export y nada...

No sé que más hacer sinceramente...

Gracias.

Saludos.


--
To UNSUBSCRIBE, email to debian-user-s...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/CAJ2aOA9N1oxonmF0XUUYNqj9...@mail.gmail.com

Camaleón

unread,
Nov 28, 2013, 10:00:01 AM11/28/13
to
El Thu, 28 Nov 2013 15:28:13 +0100, Maykel Franco escribió:

> El día 27 de septiembre de 2013 15:41, Camaleón <noel...@gmail.com>
> escribió:

(Anda que no ha llovido... :-P)

>>> Gracias por contestar Camaleón, en esta maquina es donde no me la
>>> reconoce:
>>>
>>> root@pc:~# locale -a
>> C
>> (...)
>>> es_ES es_ES.iso88591 es_ES.utf8
>> (...)
>>
>> Ostras, cuántas locales :-)
>>
>> Pero, hum... no veo la que has generado con el alias ("es"). Está la
>> "es_ES" ¿es esa la correcta?
>>
>>> Y esta maquina es donde si lo engancha php:
>>>
>>> root@moriarty:~# locale -a C
>>
>> (...)
>>
>> Pues aquí tampoco aparece el alias "es", así que me decanto porque la
>> diferencia en la salida de los comandos esté en la configuración de PHP
>> de los dos equipos.

(...)

> Esto no lo conseguí solucionar. El tema es que un programador quiere
> usar el alias es en vez de es_ES, no me preguntéis por que, pero quiere
> que sea así, y cuando le lanzas por ejemplo el comando desde php:

¿Revisaste la configuración de PHP en ambos equipos (donde funcionaba y
donde no)? Y oye.. ¿qué le devuelve cuando define el valor a "es_ES"?
Aunque no lo quiera usar el resultado podría dar alguna pista del origen
del problema.

> La verdad es que no sé que más hacer, me recorrido todo google...El caso
> es que en un ubuntu 10.04 sí que funciona:

(...)

Por curiosidad... ¿qué contiene el archivo "/etc/locale.alias" de ese
Ubuntu?

Saludos,

--
Camaleón


--
To UNSUBSCRIBE, email to debian-user-s...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/pan.2013.11...@gmail.com

Maykel Franco

unread,
Nov 28, 2013, 10:20:01 AM11/28/13
to
Gracias por contestar.


ro...@ubuntu-10.04-lts:~# cat /etc/locale.alias
# Locale name alias data base.
# Copyright (C) 1996-2001,2003,2007 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

# The format of this file is the same as for the corresponding file of
# the X Window System, which normally can be found in
# /usr/lib/X11/locale/locale.alias
# A single line contains two fields: an alias and a substitution value.
# All entries are case independent.

# Note: This file is obsolete and is kept around for the time being for
# backward compatibility. Nobody should rely on the names defined here.
# Locales should always be specified by their full name.
--
To UNSUBSCRIBE, email to debian-user-s...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/CAJ2aOA8eiDLRDFB9NST-x_K8...@mail.gmail.com

Maykel Franco

unread,
Nov 28, 2013, 10:30:03 AM11/28/13
to
2013/11/28 Maykel Franco <maykel...@gmail.com>:
El problema es que no está cogiendo el alias "es":

export LC_ALL=es
-bash: aviso: setlocale: LC_ALL: no se puede cambiar el local (es): No
existe el archivo o el directorio

Y está hecho el locale-gen y el dpkg-reconfigure locales

No sé que más hacer...

Saludos.


--
To UNSUBSCRIBE, email to debian-user-s...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/CAJ2aOA8gx5WL2oMLiJ-G0asG...@mail.gmail.com

Camaleón

unread,
Nov 28, 2013, 10:40:02 AM11/28/13
to
El Thu, 28 Nov 2013 16:11:01 +0100, Maykel Franco escribió:

> El día 28 de noviembre de 2013 15:58, Camaleón <noel...@gmail.com>
escribió:

(...)

>> Por curiosidad... ¿qué contiene el archivo "/etc/locale.alias" de ese
>> Ubuntu?

> Gracias por contestar.
>
>
> ro...@ubuntu-10.04-lts:~# cat /etc/locale.alias

(...)

> spanish es_ES.ISO-8859-1
(...)
> es es_ES.UTF-8

Compáralo con el tuyo (donde no funciona) para ver si hay alguna
variación.

Sigo pensando que la configuración de PHP tiene algo que ver en todo
esto :-? Hum... echa un vistazo a este hilo:

http://article.gmane.org/gmane.comp.php.internationalization/890

Maykel Franco

unread,
Nov 28, 2013, 10:50:03 AM11/28/13
to
Puede ser de php pero debería de funcionar export no?? No veo ninguna
diferencia...

Saludos.


--
To UNSUBSCRIBE, email to debian-user-s...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/CAJ2aOA_rERab-gZfqUZOun9g...@mail.gmail.com

Camaleón

unread,
Nov 28, 2013, 11:20:02 AM11/28/13
to
El Thu, 28 Nov 2013 16:42:42 +0100, Maykel Franco escribió:

> El día 28 de noviembre de 2013 16:36, Camaleón <noel...@gmail.com>
> escribió:

(...)

>>>> Por curiosidad... ¿qué contiene el archivo "/etc/locale.alias" de ese
>>>> Ubuntu?
>>
>>> Gracias por contestar.
>>>
>>>
>>> ro...@ubuntu-10.04-lts:~# cat /etc/locale.alias
>>
>> (...)
>>
>>> spanish es_ES.ISO-8859-1
>> (...)
>>> es es_ES.UTF-8
>>
>> Compáralo con el tuyo (donde no funciona) para ver si hay alguna
>> variación.
>>
>> Sigo pensando que la configuración de PHP tiene algo que ver en todo
>> esto :-? Hum... echa un vistazo a este hilo:
>>
>> http://article.gmane.org/gmane.comp.php.internationalization/890
>>
> Puede ser de php pero debería de funcionar export no?? No veo ninguna
diferencia...

La función "setlocale()" de PHP debería devolver lo que el sistema
devuelve. En ambos equipos, ejecuta y pon la salida de:

export LC_ALL=es; locale; date
0 new messages