2016-12-21 4 views
0

Nach Laravel Docs außer Kraft setzen: https://laravel.com/docs/5.1/localization#overriding-package-language-filesWie kann ich Paket Sprachdateien in Laravel 5.1

zum Beispiel, wenn Sie sich für ein Paket mit dem Namen Skyrim/Hearthfire die englische Sprache Zeilen in messages.php außer Kraft setzen müssen, Sie würde eine Sprachdatei unter: resources/lang/vendor/hearthfire/de/messages.php platzieren.

Ich habe derzeit das Paket ActiveWebsite/Enterprise-Entity-Paket, das ich in meinem Projekt einschließe. Es enthält eine Sprachdatei:

vendor/activewebsite/enterprise-entity/src/resources/lang/en/phone.php

Diese Datei enthält Übersetzungen für Typen von Telefonnummern:

'phone_1' => 'Home', 
'phone_2' => 'Work', 
'phone_3' => 'Mobile', 
'phone_4' => 'Office', 
'phone_5' => 'Fax', 
'phone_6' => 'Fax 2', 
'phone_7' => 'Home 2', 
'phone_8' => 'Direct', 

das obige Beispiel folgend, habe ich versucht, diese Datei zu überschreiben, indem Sie das folgende Verzeichnis erstellen:

resources/lang/vendor/enterprise-entity/en/phone.php 

enthält eine zusätzliche Telefonnummer speziell für dieses Projekt:

'phone_9' => 'Rapid Rewards Text Alert Number', 

Aber die Übersetzung kommt nicht bis zum Front-End durch. Die einzige Möglichkeit, die Übersetzung zu erhalten, besteht darin, die Sprachdatei innerhalb des Enterprise-Entity-Pakets zu bearbeiten.

ich diesen Thread gefunden: https://octobercms.com/forum/post/localication-problems-where-to-overwrite-octobercms-lang-settings-in-general Wo ein anderer Benutzer ein ähnliches Problem mit zu sein scheint, aber es wird vermutet, dass sie die Verzeichnisstruktur verwenden:

/lang/{locale}/{vendor}/{plugin}/lang.php 

so versuchte ich

/lang/en/activewebsite/enterprise-entity/phone.php 

ohne Glück.

Kann mir jemand sagen, was ich hier falsch mache? Ich habe versucht, einen PHP-Handwerker nach jeder Änderung zu optimieren, um zu sehen, ob das die Dinge klären könnte, aber kein Glück.

Dank!

Antwort

1

Stellt sich heraus, dass die Ordnerstruktur den NAMESPACE für das Paket camelcase verwenden muss und nicht der gleichen Namenskonvention/Verzeichnisstruktur wie im Paket oder in der Dokumentation folgen soll. In meinem Beispiel ist der für das Enterprise-Entity-Paket verwendete Namespace EnterpriseEntity, camelcased wäre enterpriseEntity. Die korrekte Verzeichnisstruktur wäre:

resources/lang/vendor/enterpriseEntity/en/phone.php