Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rmariuzzo/laravel-localization-loader
Laravel Localization loader for webpack. Convert Laravel Translation strings to JavaScript Objects.
https://github.com/rmariuzzo/laravel-localization-loader
laravel-localization webpack-loader
Last synced: 2 months ago
JSON representation
Laravel Localization loader for webpack. Convert Laravel Translation strings to JavaScript Objects.
- Host: GitHub
- URL: https://github.com/rmariuzzo/laravel-localization-loader
- Owner: rmariuzzo
- License: mit
- Created: 2017-03-14T13:50:31.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2019-10-26T09:05:50.000Z (about 5 years ago)
- Last Synced: 2024-10-11T07:10:34.647Z (3 months ago)
- Topics: laravel-localization, webpack-loader
- Language: JavaScript
- Size: 81.1 KB
- Stars: 70
- Watchers: 3
- Forks: 7
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
![Laravel localization Loader – Laravel localization Loader for Webpack. Convert Laravel Translation files (php or json) to JavaScript Objects.](banner.svg)
## Features
- Support both Laravel PHP and JSON translation files.
- 100% test coverage.
- Only has two dependencies: [json-loader](https://github.com/webpack-contrib/json-loader) and [php-array-loader](https://github.com/rmariuzzo/php-array-loader).## Installation
```shell
npm install laravel-localization-loader --save-dev
```or
```shell
yarn add laravel-localization-loader --dev
```## Configuration
### Webpack 2+
```js
// 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
```js
// 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](https://github.com/rmariuzzo/Lang.js) then you may want to create a `messages.js` files that look as follow:
```js
// 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:
```js
// 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](#test).
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 :heart: by [Rubens Mariuzzo](https://github.com/rmariuzzo).
[MIT license](LICENSE)