Volver a la página principal
sábado 28 septiembre 2024
52

Cómo usar trans() en Laravel para la traducción de textos

Definición de 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.

Ejemplo básico de uso:

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.

Algunos ejemplos de uso de 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

Referencia oficial

Para más detalles sobre la traducción de textos y localización en Laravel, consulta la documentación oficial de Laravel.

Etiquetas:
php laravel
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer