geeksdevelop / translate
Package for handling translations of data in the database
This package is not auto-updated.
Last update: 2024-09-28 21:29:33 UTC
README
###Compatible with laravel versions 5.1, 5.2, 5.3 and 5.4 Package for the translation of fields in the database according to the language of configuration of the laravel system.
Installation
composer require geeksdevelop/translate
Service Provider
Add the package to your application service providers in config/app.php
file.
'providers' => [ /* * Package Service Providers... */ Geeksdevelop\Translate\TranslateProvider::class, ],
Publish
Publish the migration to your application. Run these commands inside your terminal.
php artisan vendor:publish --provider="Geeksdevelop\Translate\TranslateProvider"
Migrate the tables
Run migrations.
php artisan migrate
Include trait to models
Include the Translate
feature within your models where you need to translate fields.
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Geeksdevelop\Translate\Traits\Translate; class Post extends Model { use Translate; ],
User Guide
Create translations
Create the translation by placing the following data
locale
=> language to translate,
type
=> Input name to translate,
value
=> string incresada ene the input,
$post->setTranslate($locale, $type, $value);
Exemple
$post = Post::create([...]); #English language $post->setTranslate('en', 'title', 'Title of the post'); #French language $post->setTranslate('fr', 'title', 'Après le titre'); #Table translates +----+----------------+--------------------+-----------------+------------------+ | id | locale | type | value | translable_type | translable_value | +----+----------------+--------------------+-----------------+------------------+ | 1 | en | title | Title of the post | 1 | App\Post | +----+----------------+--------------------+-----------------+------------------+ | 2 | fr | title | Après le titre | 1 | App\Post | +----+----------------+--------------------+-----------------+------------------+
Get the translation
To get a translation we just have to make use of the method translate()
, which by entering the type will give us the translation depending on the language in which the laravel system is configurated.
$post->translate('title'); #Title of the post
If you want to get a specific translation in a language other than the one that is configured laravel you can use the translate ()
method, in the following way:
$post->translate('title', 'fr'); #Après le titre
Using translate()
, we can get all the translations that have been registered on the model in different languages.
$post->translate(); /* translate => [ 0 => [ 'id' => 1, 'locale' => 'en', 'value' => 'Title of the post', 'translable_type' => 1, 'translable_value' => 'App\Post' ], 1 => [ 'id' => 2, 'locale' => 'fr', 'value' => 'Après le titre', 'translable_type' => 1, 'translable_value' => 'App\Post' ] ]; */
Update translations
To update, the method to be used is updateTranslate(locale, type, value)
$post->updateTranslate($locale, $type, $value);
Delete translation
To delete just use the method deleteTranslate(locale, type)
$post->deleteTranslate($locale, $type);