Laravel Translation

vemcogroup/laravel-translation image

Laravel Translation stats

Downloads
133.2K
Stars
127
Open Issues
4
Forks
9

View on GitHub →

Translation package for Laravel to scan for localisations and up/download to poeditor

Laravel Translation

Description

This package allows you to scan your app for translations and create your *.json file.

It also allows you to upload your base translation to poeditor.

Installation

You can install the package via composer:

composer require vemcogroup/laravel-translation

The package will automatically register its service provider.

To publish the config file to config/translation.php run:

php artisan vendor:publish --provider="Vemcogroup\Translation\TranslationServiceProvider"

This is the default contents of the configuration:

return [
 
/*
|--------------------------------------------------------------------------
| Base Language
|--------------------------------------------------------------------------
|
| Here you may specify which of language is your base language.
| The base language select will be created as json file when scanning.
| It will also be the file it reads and uploads to POEditor.
|
*/
 
'base_language' => 'en',
 
/*
|--------------------------------------------------------------------------
| Functions
|--------------------------------------------------------------------------
|
| Here you define an array describing all the function names to scan files for.
|
*/
 
'functions' => ['__'],
 
/*
|--------------------------------------------------------------------------
| Excluded directories
|--------------------------------------------------------------------------
|
| Here you define which directories are excluded from scan.
|
*/
 
'excluded_directories' => ['vendor', 'storage', 'public', 'node_modules'],
 
/*
|--------------------------------------------------------------------------
| Extensions
|--------------------------------------------------------------------------
|
| Here you define an array describing all the file extensions to scan through.
|
*/
 
'extensions' => ['*.php', '*.vue'],
 
/*
|--------------------------------------------------------------------------
| API Key
|--------------------------------------------------------------------------
|
| Here you define your API Key for POEditor.
|
| More info: https://poeditor.com/account/api
|
*/
 
'api_key' => env('POEDITOR_API_KEY'),
 
/*
|--------------------------------------------------------------------------
| Project Id
|--------------------------------------------------------------------------
|
| Here you define the project Id to upload / download from.
|
*/
 
'project_id' => env('POEDITOR_PROJECT_ID'),
];

If you want to use upload / download to poeditor features, you need to create a your base_language in poeditor.

Usage

You are now able to use the translation commands scan/upload/download or create-js

Scan files

To scan your project for translations run this command:

php artisan translation:scan {--merge : Whether the job should overwrite or merge new translations keys}

The command creates your base_language .json file in /resources/lang

Add terms

To only add your terms run this command:

php artisan translation:add-terms {--scan : Whether the job should scan before uploading}

This command doesn't remove unsused terms, so remember NOT to run upload command afterward.

Upload translations

To upload your translation terms to poeditor run this command:

php artisan translation:upload {--scan : Whether the job should scan before uploading}

You are also able to upload your local translations if you have locale changes

php artisan translation:upload {--translations=all : Upload translations for language sv,da,...}

Download translation languages

To download languages from poeditor run this command:

php artisan translation:download

Create JS language files

To create public JS files run this command:

php artisan translation:create-js {--download : Download language files before creating js}

You are now able to access all your languages as window.i18n from /public/lang when you include the .js file

<script src="https://raw.githubusercontent.com/vemcogroup/laravel-translation/master/build/lang/en.js"></script>

System translations

If you want to translate system translations change the terms in eg /resources/lang/en/auth.php

From:

'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',

To

'throttle' => __('Too many login attempts. Please try again in :seconds seconds.'),

Then it will be scanned and included in the synced terms.

vemcogroup photo

Analytics company, based in Denmark. This repo is for giving back to the community and sharing our work.

Cube

Laravel Newsletter

Join 40k+ other developers and never miss out on new tips, tutorials, and more.


Vemcogroup Laravel Translation Related Articles

Scaffold Packages with the `laravel package` Command in Laravel Installer v5.31.0 image

Scaffold Packages with the `laravel package` Command in Laravel Installer v5.31.0

Read article
NationForge: A Self-Hosted Admin Panel for Civic Organizations image

NationForge: A Self-Hosted Admin Panel for Civic Organizations

Read article
Toolkit: Reusable AI Tools for the Laravel AI SDK image

Toolkit: Reusable AI Tools for the Laravel AI SDK

Read article
Typed Translation Accessors in Laravel 13.15.0 image

Typed Translation Accessors in Laravel 13.15.0

Read article
Community Laravel Extension for Zed image

Community Laravel Extension for Zed

Read article
Generate, Parse, and Convert Documents in PHP with Paperdoc image

Generate, Parse, and Convert Documents in PHP with Paperdoc

Read article
Laravel Cloud logo

Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Laravel Cloud
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS Starter Kit

SaaSykit is a Multi-tenant Laravel SaaS Starter Kit that comes with all features required to run a modern SaaS. Payments, Beautiful Checkout, Admin Panel, User dashboard, Auth, Ready Components, Stats, Blog, Docs and more.

SaaSykit: Laravel SaaS Starter Kit
Kirschbaum logo

Kirschbaum

Providing innovation and stability to ensure your web application succeeds.

Kirschbaum
Celebian logo

Celebian

Celebian is a social media marketing agency specializing in helping their clients go viral on TikTok. Whether you're looking to reach a bigger audience or gain more Tiktok followers, likes, and views, they've got you covered.

Celebian
Harpoon: Next generation time tracking and invoicing logo

Harpoon: Next generation time tracking and invoicing

The next generation time-tracking and billing software that helps your agency plan and forecast a profitable future.

Harpoon: Next generation time tracking and invoicing
Blastup logo

Blastup

Blastup provides social media enhancement services including buying Instagram likes, followers, and views, with features like instant delivery and a variety of packages to suit different needs.

Blastup