Astrotomic / laravel-translatable

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

Allow to use a wrapper when creating multiple translations #409

Closed artemiyone closed 3 months ago

artemiyone commented 6 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
artemiyone commented 4 months ago

Thanks for the feedback and sorry for the delay, busy days.

I've updated my PR and hopefully now is good to go :)

Gummibeer commented 3 months ago

https://github.com/Astrotomic/laravel-translatable/releases/tag/v11.15.0