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"]
}