Smarty es un motor de plantillas para PHP que nos permite separar el código PHP del código HTML. Los contenidos web se generan mediante la colocación de etiquetas Smarty en un documento. Para algunos de mis proyectos he utilizado Smarty y hoy os voy a presentar una forma de usar este tipo de plantillas en sitios multi-idioma.
Smarty es un motor de plantillas para PHP que nos permite separar el código PHP del código HTML. Los contenidos web se generan mediante la colocación de etiquetas Smarty en un documento. Pueden encontrar más documentación en el sitio web de Smarty
Para algunos de mis proyectos he utilizado Smarty y hoy os voy a presentar una forma de usar este tipo de plantillas en sitios multi-idioma. Hay otras posibilidades como smarty-gettext, que os presentaré más adelante.
Para las traducciones vamos a utilizar archivos de configuración . En estos ficheros se definen variables globales para los templates y se aplica con el siguiente código:
<?php $smarty=new Smarty(); $smarty->config_dir='/path/al/directorio/'; //Segun el idioma cargamos uno u otro fichero de configuración $smarty->config_load('es.conf'); ?>
Crearemos un fichero de configuración por idioma, de manera que en cada uno queden reflejadas todas las cadenas de texto traducidas.
Por ejemplo un archivo de configuración en español:
# cadenas globalesinicio = Inicioenviar = Enviar # página de login[login]titulo = Introduce tu usuario y contraseña
Y su archivo correspondiente de configuración en inglés:
# cadenas globalesinicio = Homeenviar = Send # página de login[login]titulo = Enter your username and password
Una vez tenemos todo el contenido estático de la web reflejado en los archivos de configuración, llamamos desde la plantilla a cada cadena utilizando la sintaxis {#variable#}. De tal manera que según el archivo de configuración que le hayamos asignado en la plantilla se mostraran las cadenas en un idioma u otro.
Ejemplo:
<strong>{#titulo#}strong> <inputtype="button"name="enviar"value="{#enviar#}"/>
Desde luego con el uso de Smarty en sitios multi-idiomas, es una alternativa a tener en cuenta.
...
Última modificación: oct 4, 2024