Database Table Query Value Translate in Laravel

Database Table Query Value Translate in Laravel

Translating database query values in Laravel is essential for building multilingual applications. This tutorial demonstrates how to translate single and multiple database values, store translations for SEO, and serve API responses dynamically.

  1. Translate single database value in Laravel
  2. Translate multiple query results
  3. Store translations in the database
  4. Serve translated data via API
  5. SEO-friendly multilingual setup


Install Free Google Translate Package

composer require stichoza/google-translate-php

Single Database Value

use Stichoza\GoogleTranslate\GoogleTranslate;
use App\Models\Post;

$post = Post::find(1);

$translator = new GoogleTranslate('bn'); // Target language
$translatedTitle = $translator->translate($post->title);

echo $translatedTitle;


Translate Multiple Query Results

use Stichoza\GoogleTranslate\GoogleTranslate;
use App\Models\Post;
$translator = new GoogleTranslate('fr');
$posts = Post::select('id', 'title', 'content')->get();

$posts->transform(function ($post) use ($translator) {
    $post->title_translated = $translator->translate($post->title);
    $post->content_translated = $translator->translate($post->content);
    return $post;
});
return $posts;


Store Translations in Database

$post = Post::find(1);
$translator = new GoogleTranslate('es');
$post->title_es = $translator->translate($post->title);
$post->content_es = $translator->translate($post->content);
$post->save();
Step 5: Serve Translations via API Response
public function translatedPosts($lang) {
    $translator = new GoogleTranslate($lang);
    return response()->json(
        Post::all()->map(function ($post) use ($translator) {
            return [
                'id' => $post->id,
                'title' => $translator->translate($post->title),
                'content' => $translator->translate($post->content),
            ];
        })
    );
}