Ce package contient un trait HasTranslations
pour rendre les modèles Eloquent traduisibles. Les traductions sont stockées au format json. Aucune table supplémentaire n’est nécessaire pour les contenir.
use Illuminate Database Eloquent Model ;
use Spatie Translatable HasTranslations ;
class NewsItem extends Model
{
use HasTranslations;
// ...
}
Une fois le trait appliqué sur le modèle, vous pouvez effectuer les opérations suivantes :
$ 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 ();
Nous investissons beaucoup de ressources dans la création des meilleurs packages open source de leur catégorie. Vous pouvez nous soutenir en achetant l'un de nos produits payants.
Nous apprécions grandement que vous nous envoyiez une carte postale de votre ville natale, mentionnant le(s) forfait(s) que vous utilisez. Vous trouverez notre adresse sur notre page contact. Nous publions toutes les cartes postales reçues sur notre mur virtuel de cartes postales.
Toute la documentation est disponible sur notre site de documentation.
composer test
Veuillez consulter CONTRIBUER pour plus de détails.
Si vous avez trouvé un bug concernant la sécurité, veuillez envoyer un mail à [email protected] au lieu d'utiliser le suivi des problèmes.
Vous êtes libre d'utiliser ce package, mais s'il parvient à votre environnement de production, nous apprécions grandement que vous nous envoyiez une carte postale de votre ville natale, mentionnant lequel de nos packages vous utilisez.
Notre adresse est : Spatie, Kruikstraat 22, 2018 Anvers, Belgique.
Nous publions toutes les cartes postales reçues sur le site Internet de notre entreprise.
Nous avons eu l'idée de stocker les traductions au format json dans une colonne de Mohamed Said. Des parties du readme de son package multilingue ont été utilisées dans ce readme.
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.