Astrotomic / laravel-translatable

A Laravel package for multilingual models
https://docs.astrotomic.info/laravel-translatable/
MIT License
1.22k stars 152 forks source link

Allow to use a wrapper when creating multiple translations #409

Open artemiyone opened 2 months ago

artemiyone commented 2 months ago

Description: Adding the ability to wrap multiple translations when creating new records.

Changes: Added translations_wrapper config to allow user to set a custom wrapper name.

Purpose: When working with DTOs, we've found it useful to be able to wrap all the translations into a specific property when creating multiple records at once.

Benefits: Facilitates to create/convert the DTOs and use them for model creation/update.

Usage: Developers can now set a custom wrapper for multiple creation and use it in the following way:

You may define a wrapper property when creating new translations. Set the translations_wrapper property in translatable config file:

'translations_wrapper' => 'translations',

Then just wrap multiple locales using that property:


$data = [
  'author' => 'Gummibeer',
  'translations' => [
      'en' => ['title' => 'My first post'],
      'fr' => ['title' => 'Mon premier post'],
  ],
];
$post = Post::create($data);

echo $post->translate('fr')->title; // Mon premier post