Lingo.dev + .php (Laravel)
Lingo.dev CLI traduce archivos de idioma basados en arrays de PHP mientras preserva la sintaxis, las convenciones de Laravel y el formato específico de PHP. La CLI mantiene exactamente la sintaxis y el formato de los arrays de PHP, funciona perfectamente con el sistema de localización de Laravel, preserva las variables :name
y :count
, maneja estructuras de arrays multidimensionales y es compatible con cualquier framework de PHP que utilice arrays.
Configuración rápida
Configuración para archivos de arrays de idioma PHP:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"php": {
"include": ["resources/lang/[locale]/*.php"]
}
}
}
Recordatorio: [locale]
es un marcador de posición que debe permanecer literalmente en la configuración, ya que se reemplaza con el locale real durante la ejecución de la CLI.
Traducir arrays de PHP
npx lingo.dev@latest i18n
Preserva la sintaxis de PHP, la estructura de arrays y las convenciones específicas de Laravel mientras traduce los valores de las cadenas.
Estructura de arrays de PHP
Arrays de idioma básicos
<?php
return [
'welcome' => 'Bienvenido a nuestra aplicación',
'dashboard' => 'Panel de control',
'settings' => 'Configuración',
'logout' => 'Cerrar sesión',
];
Soporte para arrays anidados
<?php
return [
'auth' => [
'login' => 'Iniciar sesión',
'register' => 'Registrarse',
'forgot_password' => '¿Olvidó su contraseña?',
'reset_password' => 'Restablecer contraseña',
],
'validation' => [
'required' => 'Este campo es obligatorio',
'email' => 'Por favor, introduzca una dirección de correo electrónico válida',
],
];
Soporte para marcadores de posición de Laravel
<?php
return [
'welcome_user' => '¡Bienvenido de nuevo, :name!',
'items_count' => 'Tiene :count artículos en su carrito',
'validation' => [
'min' => 'El :attribute debe tener al menos :min caracteres',
],
];
Integración con frameworks
Helpers de traducción de Laravel
Funciona perfectamente con las funciones de traducción de Laravel:
__('messages.welcome')
trans('auth.login')
@lang('validation.required')
Soporte de pluralización
<?php
return [
'items' => 'item|items',
'minutes' => '{0} sin minutos|{1} un minuto|[2,*] :count minutos',
];
Configuración avanzada
Múltiples directorios de idiomas
"php": {
"include": [
"resources/lang/[locale]/*.php",
"lang/[locale]/**/*.php"
]
}
Bloquear claves de configuración
"php": {
"include": ["resources/lang/[locale]/*.php"],
"lockedKeys": ["app.timezone", "app.locale", "app.fallback_locale"]
}