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