trans() en Laravel
La función trans() toma como argumento una clave de traducción y devuelve la cadena traducida correspondiente desde los archivos de localización (ubicados en el directorio resources/lang). Estos archivos están organizados en carpetas por idioma, como en, es, fr, etc., y contienen archivos .php con arreglos que definen las cadenas traducibles.
echo trans('messages.welcome');
En este ejemplo, Laravel buscará la clave 'welcome' en el archivo resources/lang/en/messages.php (suponiendo que el idioma configurado sea en), y mostrará el texto asociado a esa clave.
trans()
1. Traducir un texto con clave específica:
Si tienes un archivo de idioma como resources/lang/es/messages.php con el siguiente contenido:
return [
'welcome' => 'Bienvenido a nuestra aplicación',
];
Puedes usar:
echo trans('messages.welcome');
Esto mostrará: Bienvenido a nuestra aplicación cuando el idioma de la aplicación esté configurado como es (español).
2. Traducir con parámetros de sustitución:
Puedes pasar parámetros dinámicos a las traducciones usando :param en el texto de traducción. Por ejemplo:
// Archivo de idioma: resources/lang/en/messages.php
return [
'greeting' => 'Hello, :name!',
];
Luego, en tu código:
echo trans('messages.greeting', ['name' => 'John']);
Esto mostrará: Hello, John!.
3. Usar la función __() como alternativa a trans():
La función __() es un alias de trans() y se usa de la misma manera:
echo __('messages.welcome');
Produce el mismo resultado y es más corta de escribir, por lo que suele preferirse en plantillas Blade.
4. Cambiar el idioma actual para una solicitud específica:
Puedes cambiar el idioma de la aplicación de forma temporal usando:
App::setLocale('fr');
echo trans('messages.welcome');
Si existe una traducción en resources/lang/fr/messages.php, la función trans() mostrará el texto en francés.
5. Definir y utilizar traducciones en el controlador:
En un controlador, puedes usar trans() para traducir mensajes dinámicamente:
public function showWelcome()
{
return trans('messages.welcome');
}
6. Traducir grupos y subgrupos de traducción:
Si tienes estructuras de archivos más complejas como resources/lang/es/navigation.php:
return [
'menu' => [
'home' => 'Inicio',
'about' => 'Sobre Nosotros',
],
];
Puedes acceder a las claves anidadas usando .:
echo trans('navigation.menu.home'); // Muestra: Inicio
Para más detalles sobre la traducción de textos y localización en Laravel, consulta la documentación oficial de Laravel.
Jorge García
Fullstack developer