Usar variables en el archivo de traducciones es quizás la peor de las opciones. Destinar un lugar dentro de la tabla de símbolos para cada posible cadena es un abuso. El uso de un prefijo reservado para traducciones, como se muestra en el ejemplo, al menos reduce la posibilidad de conflicto con otras variables que se usen en la aplicación, sin embargo, no impide que inadvertidamente se reutilice el mismo nombre para dos cadenas distintas y el intérprete PHP no dará aviso de error, como lo haría en el caso de querer redefinir una constante, quedándose con el último valor asignado.

Otro problema es que las variables no son visibles dentro de las funciones, por lo que se deben acceder a través del array $GLOBALS o declarar cada variable individualmente con la instrucción global en cada función donde se utilice, como se muestra en la función mostrar_archivos().

Sobre las constantes, tiene la ventaja de ser más rápidas de procesar y además pueden expandirse dentro de una cadena con comillas dobles o un heredoc.

Finalmente, otro problema es que, en caso de faltar una traducción, no se muestra nada, como se puede ver en el ejemplo si se elije la última opción de idioma.

Viene de: Internacionalización y localización: usando constantes

Continúa en: Internacionalización y localización: usando arrays

Indice: Internacionalización y Localización: índice