Changelog

v11

v11.3.0

  • Add \Astrotomic\Translatable\Validation\RuleFactory - #34

v11.2.1

  • Fix duplicate checks of same locale - #40

v11.2.0

  • Add auto fallback locale finder - #36

v11.1.3

  • Fix conflict between attributes and locales during fill() - #38

v11.1.2

  • Refactor translation relationship - #23

v11.1.1

  • Add missing return type-hints - #16

v11.1.0

  • Add missing dependencies illuminate/contracts and illuminate/database - #9

  • Add \Astrotomic\Translatable\Contracts\Translatable interface

  • Split \Astrotomic\Translatable\Translatable into multiple traits - but use them in the main one

  • Add translation relationship - #3

  • Flag methods, not defined in interface as @internal

  • Rename getRelationKey() to getTranslationRelationKey() to prevent conflicts - the original one is @deprecated and will be dropped in next major release

  • Update the where translation scopes to unify them and remove duplicated code - #2

v11.0.0

  • Add PHP7 type-hints #557

  • Move to Astrotomic #1 & #4

migrate from dimsav to astrotomic

  1. upgrade to dimsav/laravel-translatable:v10.0.0

  2. run composer remove dimsav/laravel-translatable

  3. run composer require astrotomic/laravel-translatable

  4. replace Dimsav\ by Astrotomic\ in your whole project (namespace change)

v10.0.0

  • Add Dimsav\Translatable\Locales helper class #574

  • Fix getRelationKey() #575

  • drop custom save method in favor of saved event listener #567

v9

v9.5.0

  • Add isEmptyTranslatableAttribute() method to allow custom empty attribute decision logic #576

v9.4.0

v9.3.0

  • Fix n+1 queries when updating non-translated model attributes #533

v9.2.0

  • Add support for Laravel 5.7 #518

v9.1.0

  • Do not call get translation with fallback locale and fallback enabled #502

  • Allow translateOrDefault() and translateOrNew() to default to user app locale #500

  • Change autoload translations behavior on runtime #501

  • Use fallback in attributesToArray() #503

  • Added orderByTranslation() scope #504

  • Example in doc for locale filtering in whereTranslation() scope #487

  • Fire saving event in every case #457

  • Allow to change default translation model namespace from config file #508

v9.0.0

  • Added support for Laravel 5.6 #435

v8

v8.1.0

  • Fixed error when fallback not available. #422

  • Fixed withTranslation query scope performance #417

  • Fixed fallback for country-based locales #417

  • Fixed empty attribute values #410

v8.0.0

  • Added support for Laravel 5.5 #394

v7

v7.3.0

  • Added compatibility with custom db connections. #366

v7.2.1

  • Fixed delete events not fired for translations. #361

v7.2.0

  • Added replicateWithTranslations(). #346

  • Added orWhereTranslation() and orWhereTranslationLike() scopes. #338

  • Added support for laravel auto-discovery. #359

  • Added tag for publishing the config file. #360

v7.1.0

  • Added fallback per attribute. #348

  • Added getTranslationsArray() #347

  • Fixed filling 'property:locale' format was not validating the locale. #356

v7.0.0

  • Added compatibility with Laravel v5.4.

  • Added default locale per model. #271

v6

v6.1.0

  • Filling a model now supports using the 'property:locale' format in keys. #314 For example: $country->fill(['name:en' => 'Belgium'])

  • Added config to skip translations in toArray() for better performance when needed. #315

v6.0.1

  • Fix issue when trying to fetch a translation with a country based locale #264

v6.0.0

  • Translated fillable properties should only be defined in the translation model.

    • To update from version 5, move all the fillable properties belonging to a translation to the corresponding translation models.

  • Added deleteTranslations() method for conveniently deleting translations

v5

v5.6.1

  • Added support for Lumen without Facades #259

  • Added support for Model accessors #257

  • Updated code style and added styleci to enforce it

v5.6.0

  • Added scope notTranslatedIn() #235

v5.5.1

  • Fixed a bug in locale fallback on toArray()

v5.5.0

  • Added Laravel 5.2 support

  • Dropped Laravel 5.0 support

  • Added scope whereTranslationLike() #183

  • Fire 'updated' event when saving translations. #190

  • setAttribute() returns the model itself, which is now the default in eloquent. #201

v5.4

  • Added compatibility with custom primary key #174

v5.3

  • Added whereTranslation() scope #168

v5.2

  • Added option to override default locale #158

  • Added default value in translatedIn() scope #148

  • Added new scope withTranslation()] to decrease the number of mysql calls made.

  • Added documentation about scopes.

v5.1.2

  • Fixed db in tests is dropped and recreated to make tests more stable

  • Fixed bug when using syntax $country->{'name:en'} and locale doesn't exist #150

  • Method isTranslationAttribute() is now public #151

v5.1.1

  • Fixed compatibility with Lumen #121

  • Fixed making an attribute on a translatable model hidden does not hide it #133

v5.1.0

  • Added mutator/accessor translations using the format $country->{'name:de'} thanks to @barryvdh

  • Added documentation in readme file

v5.0.1

  • Applied PSR-2 code style.

v5.0.0

  • Laravel 5 ready

  • Added configuration option for returning fallback translations

v4

v4.5.0

  • Added scope to list translated attributes in the current locale.

  • Force fire "saved" event when the original model is not saved, but the translation is #85

v4.4.0

  • Drops support for laravel 4.0.

  • Compatible with laravel 4.1 and laravel 4.2.

  • External config file.

  • Fallback issue fixed.

  • Added translated and translatedIn scopes.

  • Changed behavior: getting non existing translations with getTranslation() used to return objects, now null is returned.

  • Translated attributes now shown when converting toArray() or toJson().

  • Fixed bug: fill() created empty translations even when translated attributes were not fillable.

  • Added option to make translated attributes always fillable.

v4.3.0

  • The Translation class suffix default can be overridden in the app config. See 7ecc0a75d

  • The app.fallback_locale setting can be overridden in each model separately. See #33

  • Fallback translation is not returned if it is not defined.

v4.2.0

  • Fallback locale now is taken from app.fallback_locale config key.

v4.1.1

  • Fixed issue with saving translations, caused by the update of the laravel core.

v4.1.0

  • Added fallback to default locale if translations is missing. #23

  • Added travis environment for laravel 4.2.

v4.0.0

  • Removed syntax $model->en->name because conflicts may happen if the model has a property named en. See #18.

  • Added method hasTranslation($locale). See #19.

v3.0.0

  • Fixed bug #7. Model's Translations were deleted when the model delete failed.

v2.0.0

  • Translatable is now a trait and can be used as add-on to your models.

  • 100% code coverage

v1.0.0

  • Initial version

  • Translatable is a class extending Eloquent

  • 96% code coverage