/laravel-localization-loader

Laravel Localization loader for webpack. Convert Laravel Translation strings to JavaScript Objects.

Primary LanguageJavaScriptMIT LicenseMIT

Laravel localization Loader – Laravel localization Loader for Webpack. Convert Laravel Translation files (php or json) to JavaScript Objects.

Features

  • Support both Laravel PHP and JSON translation files.
  • 100% test coverage.
  • Only has two dependencies: json-loader and php-array-loader.

Installation

npm install laravel-localization-loader --save-dev

or

yarn add laravel-localization-loader --dev

Configuration

Webpack 2+

// webpack.config.js
module.exports = {
  module: {
    rules: [
      {
        // Matches all PHP or JSON files in `resources/lang` directory.
        test: /resources\/lang.+\.(php|json)$/,
        loader: 'laravel-localization-loader',
      }
    ]
  }
}

Laravel Mix

// webpack.mix.js
mix.webpackConfig({
  module: {
    rules: [
      {
        // Matches all PHP or JSON files in `resources/lang` directory.
        test: /resources\/lang.+\.(php|json)$/,
        loader: 'laravel-localization-loader',
      }
    ]
  }
});

Usage

Lang.js

First, you will need to install Lang.js then you may want to create a messages.js files that look as follow:

// messages.js
export default {
  // The key format should be: 'locale.filename'.
  'en.messages': require('../../resources/lang/en/messages.php'),
  'es.messages': require('../../resources/lang/es/messages.php'),
  'en.auth': require('../../resources/lang/en/auth.php'),
  'es.auth': require('../../resources/lang/es/auth.php'),
}

Then somewhere else in your awesome app:

// page.js
import Lang from 'lang.js'
import messages from './messages'

const lang = new Lang({ messages })
lang.get('messages.hello')

Profit!

Development

  1. Clone and fork this repo.
  2. Install dependencies: yarn or npm install.
  3. Run tests.
  4. Prepare a pull request.

Test

  • yarn test – to run all tests.
  • yarn test -- --watch – to run all tests in watch mode.

Coverage

  • yarn test -- --coverage – to run all tests with coverage.
  • yarn test -- --coverage --watch – to run all tests with coverage in watch mode.

Publish

  1. Bump package version: yarn version --new-version x.x.x -m 'Version %s.'.
  2. Publish to NPM registry: npm publish.
  3. Push new tag: git push origin --tags.

Made with ❤️ by Rubens Mariuzzo.

MIT license