CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

24 April, 2021

Store your translations in the database with Laravel translation loader package

 Programing Coderfunda     April 24, 2021     Packages, php     No comments   

 

Store your translations in the database with Laravel translation loader package

Laravel has built-in support for localization using arrays stored in language files and in 5.4 they are adding the ability for JSON based language files.

Some applications are better suited to have the language strings stored in the database so that end users can change them through a custom user interface, and that’s where the Laravel translation loader package can be helpful.

Let’s take a look at how this package can be set up and used.

Installation

First, install Laravel translation loader through Composer:

composer require spatie/spatie/laravel-translation-loader

Next, open your config/app.php and replace Laravel’s translation service provider:

Illuminate\Translation\TranslationServiceProvider::class,

with Laravel translation loader service provider:

Spatie\TranslationLoader\TranslationServiceProvider::class,


Then publish Laravel translation loader migration file:

php artisan vendor:publish --provider="Spatie\TranslationLoader\TranslationServiceProvider" --tag="migrations"

Finally, run the migrations, it will create a new table called language_lines in the database which will hold your application translations:

php artisan migrate

Overview

After you complete the installations, adding a new language line to the database will be easy as this:

use Spatie\TranslationLoader\LanguageLine;

LanguageLine::create([
'group' => '<span id="result_box" class="short_text" lang="en"><span class="">greetings</span></span>',
'key' => 'hello',
'text' => ['en' => 'Hello', 'ar' => 'السلام عليكم ورحمة الله وبركاته', 'es' => 'Hola'],
]);

And to fetch the translation from the database, use the default Laravel trans function like this:

echo trans('<span id="result_box" class="short_text" lang="en"><span class="">greetings</span></span>.hello');
// Will return 'Hello' if the locale is English and Will return 'السلام عليكم ورحمة الله وبركاته' if the locale is Arabic

Or you can use blade syntax and @lang directive like this:

{{ trans('<span id="result_box" class="short_text" lang="en"><span class="">greetings</span></span>.hello') }}
// Or
@lang('<span id="result_box" class="short_text" lang="en"><span class="">greetings</span></span>.hello')

You can also use the parameter feature of laravel trans function which will allow you to use placeholders in the translations and replace it later by passing an array of replacements as the second argument to the trans function like this:

trans('<span id="result_box" class="short_text" lang="en"><span class="">greetings</span></span>.welcome', ['name' => 'Diaa'])

One nice feature of Laravel translation loader is allowing you to save your translations in both language files and the database at the same time. By default, it will look for the database version then fall back to the file. Another feature is that you can extend the package to support other translation providers like YAML, CSV, etc.

That’s it, if you want a very useful package that provides a clean and easy way to save your translations in the database, check out Laravel translation loader.

  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • What is WordPress
      What is WordPress WordPress is a free and open-source  C ontent  M anagement  S ystem (CMS). It is an online site based on PHP and MySQL. ...
  • JqueryUI Tutorial
    JqueryUI Tutorial    JqueryUI is the most popular front end frameworks currently. It is sleek, intuitive, and powerful mobile first fr...
  • Laravel - Application Structure
    The application structure in Laravel is basically the structure of folders, sub-folders and files included in a project. Once we create a ...
  • Laravel - Installation
    For managing dependencies, Laravel uses   composer . Make sure you have a Composer installed on your system before you install Laravel. In...
  • Python Tutorial
      Python   is a general-purpose interpreted, interactive, object-oriented, and high-level programming language. It was created by Guido van...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (69)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • July (4)
  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

Loading...

Laravel News

Loading...

Copyright © CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda