php localization internationalization setlocale zend-locale

php - ¿Es factible confiar en setlocale y confiar en los entornos que se están instalando?



localization internationalization (3)

strftime generar una cadena de fecha localizada con strftime , el marcador de posición que uso es %x . El idioma / entorno local es setlocale(LC_ALL, array(''jp'',''japanese'')) , sin embargo, ninguno de los dos lugares estaba disponible, por lo que generó una cadena con caracteres incorrectos. Luego instalé el ja_JP.utf8 local ja_JP.utf8 y lo especifiqué como el primer elemento de la matriz y el problema de formato de fecha que tuve se resolvió.

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

Creo que Zend_Locale y Zend_Translate no confían en setlocale sino que lo hacen internamente, lo que me da la impresión de que no es práctico 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 por un año más, por lo que no puedo confiar únicamente en ellos.


Posible, sí. Sabio, en absoluto!


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.


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

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