Lingo.dev + .php (Laravel)

Lingo.dev CLI traduit les fichiers de langue basés sur des tableaux PHP tout en préservant la syntaxe, les conventions Laravel et le formatage spécifique à PHP. Le CLI maintient exactement la syntaxe et le formatage des tableaux PHP, fonctionne parfaitement avec le système de localisation de Laravel, préserve les variables :name et :count, gère les structures de tableaux multidimensionnels, et est compatible avec tout framework PHP utilisant des tableaux.

Configuration rapide

Configuration pour les fichiers de tableaux de langue PHP :

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "php": {
      "include": ["resources/lang/[locale]/*.php"]
    }
  }
}

Rappel : [locale] est un placeholder qui doit rester littéralement dans la configuration, car il est remplacé par la locale réelle pendant l'exécution du CLI.

Traduire les tableaux PHP

npx lingo.dev@latest i18n

Préserve la syntaxe PHP, la structure des tableaux et les conventions spécifiques à Laravel tout en traduisant les valeurs des chaînes.

Structure des tableaux PHP

Tableaux de langue basiques

<?php

return [
    'welcome' => 'Bienvenue dans notre application',
    'dashboard' => 'Tableau de bord',
    'settings' => 'Paramètres',
    'logout' => 'Déconnexion',
];

Support des tableaux imbriqués

<?php

return [
    'auth' => [
        'login' => 'Connexion',
        'register' => 'Inscription',
        'forgot_password' => 'Mot de passe oublié ?',
        'reset_password' => 'Réinitialiser le mot de passe',
    ],
    'validation' => [
        'required' => 'Ce champ est obligatoire',
        'email' => 'Veuillez saisir une adresse e-mail valide',
    ],
];

Support des placeholders Laravel

<?php

return [
    'welcome_user' => 'Bon retour, :name !',
    'items_count' => 'Vous avez :count articles dans votre panier',
    'validation' => [
        'min' => 'Le champ :attribute doit comporter au moins :min caractères',
    ],
];

Intégration avec le framework

Helpers de traduction Laravel

Fonctionne parfaitement avec les fonctions de traduction de Laravel :

  • __('messages.welcome')
  • trans('auth.login')
  • @lang('validation.required')

Support de pluralisation

<?php

return [
    'items' => 'élément|éléments',
    'minutes' => '{0} aucune minute|{1} une minute|[2,*] :count minutes',
];

Configuration avancée

Répertoires de langues multiples

"php": {
  "include": [
    "resources/lang/[locale]/*.php",
    "lang/[locale]/**/*.php"
  ]
}

Verrouiller les clés de configuration

"php": {
  "include": ["resources/lang/[locale]/*.php"],
  "lockedKeys": ["app.timezone", "app.locale", "app.fallback_locale"]
}