Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

🌐 Convert your Laravel messages and consume them in the front-end!

License

NotificationsYou must be signed in to change notification settings

rmariuzzo/Laravel-JS-Localization

Repository files navigation

Laravel JS Localization - Convert you Laravel messages and use them in the front-end!

Laravel 5.5Laravel 4.2Latest Stable VersionTotal DownloadsLicense

This package convert all your localization messages from your Laravel app to JavaScript with a small library to interact with those messages following a very similar syntax you are familiar with.

Features

  • Support Laravel 4.2, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 6.x, 7.x and 8.x!
  • IncludesLang.js (a thin library highly inspired on Laravel'sTranslator class).
  • Allow to specify desired lang files to be converted to JS.
  • Lang.js API is based on Laravel'sTranslator class. No need to learn a whole API.

Webpack user? Try the new and shinyLaravel localization loader for Webpack!

Installation

composer require mariuzzo/laravel-js-localization

In your Laravel app go toconfig/app.php and add the following service provider:

Mariuzzo\LaravelJsLocalization\LaravelJsLocalizationServiceProvider::class

Usage

TheLaravel-JS-Localization package provides a command that generate the JavaScript version of all your messages found at:app/lang (Laravel 4) orresources/lang (Laravel 5) directory. The resulting JavaScript file will contain all your messages plusLang.js (a thin library highly inspired on Laravel'sTranslator class).

Generating JS messages

php artisan lang:js

Specifying a custom target

php artisan lang:js public/assets/dist/lang.dist.js

Compressing the JS file

php artisan lang:js -c

Specifying a custom source folder

php artisan lang:js public/assets/dist/lang.dist.js -s themes/default/lang

Output a JSON file instead.

php artisan lang:js --json

Configuration

First, publish the default package's configuration file running:

php artisan vendor:publish --provider="Mariuzzo\LaravelJsLocalization\LaravelJsLocalizationServiceProvider"

The configuration will be published toconfig/localization-js.php.

You may edit this file to define the messages you need in your Javascript code. Just edit themessages array in the config file.Empty messages array will include all the language files in build.

To make onlypagination.php andvalidation.php files to be included in build process:

<?phpreturn ['messages' => ['pagination','validation',    ],];

Usinggulp (optional)

Installgulp-shell and then run it directly in yourgulpfile.js:

varshell=require('gulp-shell');gulp.task('langjs',shell.task('php artisan lang:js -c public/js/messages.js'));

UsingLaravel's elixir (optional)

Before Elixir 4.0:

elixir.extend('langjs',function(path){gulp.task('langjs',function(){gulp.src('').pipe(shell('php artisan lang:js '+(path||'public/js/messages.js')));});returnthis.queueTask('langjs');});

Elixir 4.0+:

varTask=elixir.Task;elixir.extend('langjs',function(path){newTask('langjs',function(){gulp.src('').pipe(shell('php artisan lang:js '+(path||'public/js/messages.js')));});});

And use it like this:

elixir(function(mix){mix.langjs();});

UsingLaravel's Mix with Laravel 5.4+ (optional)

Add "webpack-shell-plugin-next" to package.json's "devDependencies" section.

Add the following to webpack.mix.js:

constWebpackShellPluginNext=require('webpack-shell-plugin-next');// Add shell command plugin configured to create JavaScript language filemix.webpackConfig({plugins:[newWebpackShellPluginNext({onBuildStart:['php artisan lang:js --quiet'],onBuildEnd:[]})]});

Documentation

This is a quick documentation regardingLang.js (the thin JavaScript library included byLaravel-JS-Localization). TheLang.js (a thin library highly inspired on Laravel'sTranslator class).

💁 Go to Lang.js documentation to see all available methods.

Getting a message

Lang.get('messages.home');

Getting a message with replacements

Lang.get('messages.welcome',{name:'Joe'});

Changing the locale

Lang.setLocale('es');

Checking if a message key exists

Lang.has('messages.foo');

Support for singular and plural message based on a count

Lang.choice('messages.apples',10);

Calling thechoice method with replacements

Lang.choice('messages.apples',10,{name:'Joe'});

💁 Go to Lang.js documentation to see all available methods.

Want to contribute?

  1. Fork this repository and clone it.
  2. Create afeature branch from develop:git checkout develop; git checkout -b feature-foo.
  3. Push your commits and create a pull request.

Prerequisites:

You will need to have installed the following softwares.

  • Composer.
  • PHP 5.5+.

Development setup

After getting all the required softwares you may run the following commands to get everything ready:

  1. Install PHP dependencies:

    composer install
  2. Install test dependencies:

    composer test-install

Now you are good to go! Happy coding!

Testing

This project uses PHPUnit. All tests are stored attests directory. To run all tests type in your terminal:

composertest

Made with ❤️ byRubens Mariuzzo.

MIT license


[8]ページ先頭

©2009-2025 Movatter.jp