Dieses Paket enthält eine Eigenschaft HasTranslations
um Eloquent-Modelle übersetzbar zu machen. Übersetzungen werden als JSON gespeichert. Es ist kein zusätzlicher Tisch erforderlich, um sie aufzubewahren.
use Illuminate Database Eloquent Model ;
use Spatie Translatable HasTranslations ;
class NewsItem extends Model
{
use HasTranslations;
// ...
}
Nachdem das Merkmal auf das Modell angewendet wurde, können Sie Folgendes tun:
$ newsItem = new NewsItem ;
$ newsItem
-> setTranslation ( ' name ' , ' en ' , ' Name in English ' )
-> setTranslation ( ' name ' , ' nl ' , ' Naam in het Nederlands ' )
-> save ();
$ newsItem -> name ; // Returns 'Name in English' given that the current app locale is 'en'
$ newsItem -> getTranslation ( ' name ' , ' nl ' ); // returns 'Naam in het Nederlands'
app ()-> setLocale ( ' nl ' );
$ newsItem -> name ; // Returns 'Naam in het Nederlands'
// If you want to query records based on locales, you can use the `whereLocale` and `whereLocales` methods.
NewsItem:: whereLocale ( ' name ' , ' en ' )-> get (); // Returns all news items with a name in English
NewsItem:: whereLocales ( ' name ' , [ ' en ' , ' nl ' ])-> get (); // Returns all news items with a name in English or Dutch
// Returns all news items that has name in English with value `Name in English`
NewsItem:: query ()-> whereJsonContainsLocale ( ' name ' , ' en ' , ' Name in English ' )-> get ();
// Returns all news items that has name in English or Dutch with value `Name in English`
NewsItem:: query ()-> whereJsonContainsLocales ( ' name ' , [ ' en ' , ' nl ' ], ' Name in English ' )-> get ();
// The last argument is the "operand" which you can tweak to achieve something like this:
// Returns all news items that has name in English with value like `Name in...`
NewsItem:: query ()-> whereJsonContainsLocale ( ' name ' , ' en ' , ' Name in% ' , ' like ' )-> get ();
// Returns all news items that has name in English or Dutch with value like `Name in...`
NewsItem:: query ()-> whereJsonContainsLocales ( ' name ' , [ ' en ' , ' nl ' ], ' Name in% ' , ' like ' )-> get ();
Wir investieren viele Ressourcen in die Erstellung erstklassiger Open-Source-Pakete. Sie können uns unterstützen, indem Sie eines unserer kostenpflichtigen Produkte kaufen.
Wir freuen uns sehr, dass Sie uns eine Postkarte aus Ihrer Heimatstadt schicken und erwähnen, welches unserer Pakete Sie verwenden. Unsere Adresse finden Sie auf unserer Kontaktseite. Wir veröffentlichen alle erhaltenen Postkarten auf unserer virtuellen Postkartenwand.
Die gesamte Dokumentation ist auf unserer Dokumentationsseite verfügbar.
composer test
Weitere Informationen finden Sie unter BEITRAGEN.
Wenn Sie einen Sicherheitsfehler gefunden haben, senden Sie bitte eine E-Mail an [email protected], anstatt den Issue-Tracker zu verwenden.
Es steht Ihnen frei, dieses Paket zu verwenden, aber wenn es in Ihre Produktionsumgebung gelangt, würden wir uns sehr freuen, wenn Sie uns eine Postkarte aus Ihrer Heimatstadt schicken und erwähnen, welches unserer Pakete Sie verwenden.
Unsere Adresse lautet: Spatie, Kruikstraat 22, 2018 Antwerpen, Belgien.
Wir veröffentlichen alle erhaltenen Postkarten auf unserer Firmenwebsite.
Die Idee, Übersetzungen als JSON in einer Kolumne zu speichern, kam uns von Mohamed Said. Teile der Readme-Datei seines mehrsprachigen Pakets wurden in dieser Readme-Datei verwendet.
Die MIT-Lizenz (MIT). Weitere Informationen finden Sie in der Lizenzdatei.