Lingo.dev + .php (Laravel)

Lingo.dev CLI übersetzt PHP-Array-basierte Sprachdateien unter Beibehaltung der Syntax, Laravel-Konventionen und PHP-spezifischen Formatierung. Die CLI behält die PHP-Array-Syntax und -Formatierung exakt bei, arbeitet nahtlos mit Laravels Lokalisierungssystem zusammen, bewahrt :name und :count Variablen, verarbeitet mehrdimensionale Array-Strukturen und ist mit jedem PHP-Framework kompatibel, das Arrays verwendet.

Schnelle Einrichtung

Konfiguration für PHP-Sprachdateien:

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

Hinweis: [locale] ist ein Platzhalter, der wörtlich in der Konfiguration verbleiben sollte, da er während der CLI-Ausführung durch die tatsächliche Locale ersetzt wird.

PHP-Arrays übersetzen

npx lingo.dev@latest i18n

Bewahrt PHP-Syntax, Array-Struktur und Laravel-spezifische Konventionen bei der Übersetzung von String-Werten.

PHP-Array-Struktur

Grundlegende Sprach-Arrays

<?php

return [
    'welcome' => 'Willkommen in unserer Anwendung',
    'dashboard' => 'Dashboard',
    'settings' => 'Einstellungen',
    'logout' => 'Abmelden',
];

Unterstützung für verschachtelte Arrays

<?php

return [
    'auth' => [
        'login' => 'Anmelden',
        'register' => 'Registrieren',
        'forgot_password' => 'Passwort vergessen?',
        'reset_password' => 'Passwort zurücksetzen',
    ],
    'validation' => [
        'required' => 'Dieses Feld ist erforderlich',
        'email' => 'Bitte geben Sie eine gültige E-Mail-Adresse ein',
    ],
];

Laravel-Platzhalter-Unterstützung

<?php

return [
    'welcome_user' => 'Willkommen zurück, :name!',
    'items_count' => 'Sie haben :count Artikel in Ihrem Warenkorb',
    'validation' => [
        'min' => 'Das :attribute muss mindestens :min Zeichen lang sein',
    ],
];

Framework-Integration

Laravel-Übersetzungshelfer

Arbeitet nahtlos mit Laravels Übersetzungsfunktionen zusammen:

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

Pluralisierungsunterstützung

<?php

return [
    'items' => 'item|items',
    'minutes' => '{0} keine Minuten|{1} eine Minute|[2,*] :count Minuten',
];

Erweiterte Konfiguration

Mehrere Sprachverzeichnisse

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

Konfigurationsschlüssel sperren

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