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

Related Posts:

  • Media Upload Component for Vue 3 he media-upload package is a Vue 3 component for multi-image upload with preview. Media Upload supports creating and updating images a… Read More
  • Migrator is a GUI Migration Manager for Laravel Migrator is a GUI migration manager for Laravel in which you can create, migrate, delete, and roll back your migrations. It provides a simp… Read More
  • Add Likes, Bookmarks, Favorites, and Other Marks With Laravel Markable Laravel Markable is a package to Integrate likes, bookmarks, favorites, reactions, and custom-made marks into your application.The bas… Read More
  • Generate Intervals of Time With the Laravel Hours HelperWith the Laravel Hours Helper package, you can create a collection of dates and/or times with a specific interval (in minutes) for a particu… Read More
  • Alpine.js Focus Plugin Caleb Porzio released a new focus plugin for Apline.js, which allows you to manage focus on a page:What's neat about this plugin is th… Read More
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Vue3 :style backgroundImage not working with require
    I'm trying to migrate a Vue 2 project to Vue 3. In Vue 2 I used v-bind style as follow: In Vue 3 this doesn't work... I tried a...
  • SQL ORDER BY Keyword
      The SQL ORDER BY Keyword The ORDER BY keyword is used to sort the result-set in ascending or descending order. The ORDER BY keyword sorts ...
  • Enabling authentication in swagger
    I created a asp.net core empty project running on .net6. I am coming across an issue when I am trying to enable authentication in swagger. S...
  • failed to load storage framework cache laravel excel
       User the export file and controller function  ..         libxml_use_internal_errors ( true ); ..Good To Go   public function view () : ...
  • AdminJS not overriding default dashboard with custom React component
    So, I just started with adminjs and have been trying to override the default dashboard with my own custom component. I read the documentatio...

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 (68)
  • 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

  • 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)

  • Failed to install 'cordova-plugin-firebase': CordovaError: Uh oh - 9/21/2024
  • pyspark XPath Query Returns Lists Omitting Missing Values Instead of Including None - 9/20/2024
  • SQL REPL from within Python/Sqlalchemy/Psychopg2 - 9/20/2024
  • MySql Explain with Tobias Petry - 9/20/2024
  • How to combine information from different devices into one common abstract virtual disk? [closed] - 9/20/2024

Laravel News

  • Filament Is Now Running Natively on Mobile - 5/31/2025
  • A Blade-Only Starter Kit for Laravel 12 Projects - 5/30/2025
  • PHPVerse with Brent Roose - 5/30/2025
  • Verify Nested Relations Efficiently with Laravel's Enhanced relationLoaded Method - 5/25/2025
  • ElasticLens: Eloquent-Powered Elasticsearch for Laravel - 5/29/2025

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