8

Estaba intentando generar una cadena de fecha localizada con strftime, el marcador de posición que uso es %x. El idioma/configuración regional es setlocale(LC_ALL, array('jp','japanese')), sin embargo, ni la configuración regional estaba disponible, por lo que generó una cadena con caracteres incorrectos. Luego instalé la configuración regional ja_JP.utf8 y la especifiqué como el primer elemento de la matriz y el problema de formato de fecha que tuve se resolvió.¿Es factible confiar en setlocale y confiar en las configuraciones regionales instaladas?

Mi pregunta es, ¿debería confiar siempre en las configuraciones regionales que se instalan? Soy consciente de cómo instalarlos en cuadros a los que tengo acceso de root, pero ¿qué sucede si no tengo acceso?

creo Zend_Locale y Zend_Translate no dependen de setlocale en absoluto pero de alguna manera lo hacen internamente, lo que me da la impresión de que no es prácticamente factible para aplicaciones de nivel empresarial.

Sé que probablemente podría usar Zend_Locale y Zend_Translate en mi aplicación, pero también necesita ser compatible con PHP4, al menos durante un año más, por lo que no puedo confiar únicamente en ellos.

Respuesta

6

Si mi examen de setlocale() es correcto, la respuesta es: No y no. El rango de configuraciones instaladas varía, al igual que su nombre, y la disponibilidad de un determinado entorno local no puede predecirse con total certeza.

0

Factible, sí. Sabio, en absoluto!

+1

¿Qué método utiliza para las fechas localizadas? –

+2

intl (http://www.php.net/manual/en/book.intl.php) es una interfaz para ICU, así que confío en ello. Sin embargo: confíe pero verifique, como solía decir Ronnie. –

4

Puede verificar el valor de retorno de setlocale y, al menos, comprobar que se haya instalado. De lo contrario, tendrá fallas silenciosas:

setlocale(LC_ALL, 'en_US') or die('Locale not installed'); 
Cuestiones relacionadas