[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Problema con locale



El día 27 de septiembre de 2013 15:41, Camaleón <noelamac@gmail.com> escribió:
> El Fri, 27 Sep 2013 09:37:13 +0200, Maykel Franco escribió:
>
>> El día 25 de septiembre de 2013 16:33, Camaleón <noelamac@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.
>
> Saludos,
>
> --
> Camaleón
>
>
> --
> To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> Archive: http://lists.debian.org/pan.2013.09.27.13.41.24@gmail.com
>


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:

root@ubuntu-10.04-lts:~# 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


root@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.


Reply to: