NexoPOS übersetzen
NexoPOS kann übersetzt werden, indem der Sprachcode registriert, die verfügbaren Lokalisierungsstrings extrahiert und anschließend die generierten JSON-Dateien bearbeitet werden. Diese Anleitung erklärt den vollständigen Prozess für die Kernanwendung und die installierten Module.
Bevor Sie beginnen
Sie benötigen Zugriff auf die NexoPOS-Quelldateien und ein Terminal aus dem Stammverzeichnis der Installation. Sie sollten außerdem den Sprachcode kennen, den Sie verwenden möchten, z. B. it für Italien, de für Deutsch oder es für Spanisch. Verwenden Sie einen gültigen ISO-Sprachcode, damit der generierte Dateiname und die Profilsprachenoption konsistent bleiben.
Das Hinzufügen einer Sprache, die noch nicht aufgeführt ist, erfordert eine grundlegende Konfigurationsänderung. Wenn die Übersetzung für andere Benutzer verfügbar sein soll, nehmen Sie die Änderung in einer Fork des NexoPOS-Repositorys vor und reichen Sie sie als Pull Request ein.
Registrieren Sie die Sprache
Öffnen Sie config/nexopos.php und fügen Sie die Sprache zum languages-Array hinzu. Der Array-Schlüssel ist der Sprachcode und der Wert ist der Name, der in NexoPOS angezeigt wird.
'languages' => [
'en' => 'English',
'fr' => 'Francais',
'it' => 'Italian',
],
Für eine Sprache von rechts nach links fügen Sie außerdem den Sprachcode zum Array „rtl-languages“ hinzu. Beispielsweise ist Arabisch mit „ar“ registriert.
'rtl-languages' => [ 'ar' ],
Extrahiere Kern-Übersetzungsstrings
Führen Sie den Übersetzungsbefehl mit dem von Ihnen registrierten Sprachcode aus. Dieses Beispiel extrahiert italienische Zeichenfolgen.
php artisan ns:translate --extract --lang=it
NexoPOS erstellt oder aktualisiert die Sprachdatei unter „lang/it.json“. Ersetze sie durch den Code der Sprache, die du übersetzt.
Die JSON-Datei
Öffnen Sie die generierte JSON-Datei in Ihrem bevorzugten Texteditor. Jede Schlüsselangabe ist der ursprüngliche Text, der von NexoPOS verwendet wird, und jeder Wert ist der übersetzte Text, der den Benutzern angezeigt wird. Behalten Sie die Schlüssel unverändert bei und übersetzen Sie nur die Werte.
{
"Dashboard": "Cruscotto",
"Products": "Prodotti"
}
Stellen Sie nach dem Bearbeiten sicher, dass die Datei weiterhin gültiges JSON ist. Ein fehlendes Anführungszeichen, Komma oder schließende Klammer kann dazu führen, dass die Sprachdatei nicht geladen wird.
Ein Modul
Module haben ihre eigenen Lokalisierungsdateien. Identifizieren Sie zuerst den Modul-Namespace anhand des Ordnernamens im Verzeichnis „modules“. Beispielsweise verwendet ein Modul, das in „modules/NsGastro“ installiert ist, „NsGastro“ als Namespace.
php artisan ns:translate NsGastro --extract --lang=it
Dadurch wird die Modul-Sprachdatei unter modules/NsGastro/Lang/it.json erstellt oder aktualisiert. Öffnen Sie diese Datei und übersetzen Sie die Werte auf die gleiche Weise, wie Sie die Core-Sprachdatei übersetzt haben.
Sprachdateien verfügbar machen
Wenn Übersetzungen gespeichert wurden, der Browser sie jedoch nicht laden kann, aktualisieren Sie die öffentlichen Sprachlinks. Führen Sie für die Kernsprachdateien Folgendes aus:
php artisan ns:translate --symlink --force
Für ein bestimmtes Modul aktualisieren Sie den öffentlichen Link des Moduls mit dem Modulnamespace:
php artisan modules:symlink NsGastro
Sie können auch öffentliche Links für alle installierten Module aktualisieren, indem Sie den Befehl ohne einen Namespace ausführen.
php artisan modules:symlink
Wählen Sie die Sprache aus dem Profil aus
Sobald die Übersetzungsdateien bereit sind, melden Sie sich bei NexoPOS an und öffnen Sie das Benutzerprofil über den Dashboard-Header. $
Wählen Sie die übersetzte Sprache aus, speichern Sie das Profil und laden Sie dann das Dashboard neu.
Wenn die Übersetzung nicht zutrifft
Wenn NexoPOS weiterhin den ursprünglichen Text anzeigt, prüfen Sie zuerst die häufigsten Ursachen.
- Die Sprache wurde im Benutzerprofil nicht ausgewählt.
- Der Sprachcode in config/nexopos.php stimmt nicht mit dem generierten JSON-Dateinamen überein.
- Die JSON-Datei enthält einen Syntaxfehler.
- Der Browser kann nicht auf die Sprachdateien aus „public/lang“ oder dem Modul „public“ zugreifen.
- Der an „php artisan ns:translate“ übergebene Modulnamespace ist nicht der korrekte Modulnamespace.
Zusammenfassung
- Registrieren Sie die Sprache in config/nexopos.php.
- Extrahiere Kernstrings mit „php artisan ns:translate --extract --lang={code}“.
- Übersetzen Sie die generierte JSON-Datei unter „lang“.
- Extrahiere Modul-Strings mit „php artisan ns:translate {ModuleNamespace} --extract --lang={code}“.
- Aktualisieren Sie die öffentlichen Sprachlinks und wählen Sie dann die Sprache aus dem Benutzerprofil aus.