Package Data | |
---|---|
Maintainer Username: | vemcogroup |
Maintainer Contact: | hbh@vemcount.com (Henrik B Hansen) |
Package Create Date: | 2019-09-02 |
Package Last Update: | 2024-03-29 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-22 15:03:08 |
Package Statistics | |
---|---|
Total Downloads: | 203,599 |
Monthly Downloads: | 4,636 |
Daily Downloads: | 209 |
Total Stars: | 132 |
Total Watchers: | 9 |
Total Forks: | 14 |
Total Open Issues: | 0 |
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.
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'],
/*
|--------------------------------------------------------------------------
| 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.
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
Upload translations
To upload your translation terms to poeditor run this command:
php artisan translation:upload {--scan : Whether the job should scan before uploading}
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="/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.