PHPackages                             webkid/js-translator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. webkid/js-translator

ActiveLibrary[Localization &amp; i18n](/categories/localization)

webkid/js-translator
====================

Laravel JS translator

1.4(9y ago)02.4k1MITJavaScriptPHP ~5.5|~7.0

Since May 20Pushed 9y ago1 watchersCompare

[ Source](https://github.com/PoTHuYJoHN/js-translator)[ Packagist](https://packagist.org/packages/webkid/js-translator)[ Docs](https://github.com/Webkid/JsTranslator)[ RSS](/packages/webkid-js-translator/feed)WikiDiscussions master Synced yesterday

READMEChangelog (2)Dependencies (4)Versions (7)Used By (0)

Laravel JS-translator
=====================

[](#laravel-js-translator)

Install
-------

[](#install)

Via Composer

```
$ composer require webkid/js-translator
```

Add service provider: `Webkid\JsTranslator\JsTranslatorServiceProvider::class,`

Usage. Angular JS example:
--------------------------

[](#usage-angular-js-example)

Publish lang.js library file. to `your-public-folder/jstranslator/lang.js`

```
$ php artisan vendor:publish
```

Add deferred bootstrap library to load translations before everything was loaded.

```
bower install angular-deferred-bootstrap --save
```

Add assets to your html or blade page

```

```

Run deferred bootstrap:

```
deferredBootstrapper.bootstrap({
	element: document.documentElement,
	module: 'app',
	resolve: {
		TRANS: ['$http', function ($http) {
			return $http.get('/trans');
		}]
	}
});
```

Set up route for `/trans` url:

```
Route::get('/trans', function () {
	$a = app()->make('jstranslator');
	return response()->json($a->get());
});
```

Finnaly add your angular script file. Example:

```
(function() {

	'use strict';

	angular
		.module('app', [])
		.controller('langController', langController)
		.filter('trans', trans)
		.filter('trans_plural', trans_plural)
		.filter('trans_as_array', trans_as_array)
		.run(runBlock)
	;

	runBlock.$inject = ['TRANS'];
	function runBlock(TRANS)
	{
		Lang.setMessages(TRANS); //set messages object
	}

	function langController() {
		console.log(Lang.get('pagination.next'));
	}

	/**
	 * Get translation from resources, empty.
	 * Example:
	 * 'pagination.next' | trans => 'Next'
	 */
	function trans() {
		return function (input, replaces) {
			// Set symbol
			return Lang.get(input, replaces);
		};
	}

	/**
	 * Get translation from resources.
	 * Example:
	 * 'subscription.month' | trans_plural:1 => 'month'
	 * 'subscription.month' | trans_plural:2 => 'months'
	 */
	function trans_plural() {
		return function (input, number) {
			return Lang.choice(input, number);
		};
	}

	/**
	 * Convert translation object to array from resources.
	 * Example:
	 * 'property.property_types' | trans_as_array
	 */
	function trans_as_array() {
		return function (input) {
			if(typeof Lang.get(input) !== 'object') {
				console.error('Error, ' + input + 'not a object.');
				return [];
			}
			var newOptions = [];
			angular.forEach(Lang.get(input), function(val, key){
				newOptions.push({key: key, value: val});
			});

			return newOptions;
		};
	}

})();
```

Example of usage in html:

```
Laravel 5 @{{ 'pagination.next' | trans }}
```

Change log
----------

[](#change-log)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) and [CONDUCT](CONDUCT.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- \[\]\[\]

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~77 days

Recently: every ~96 days

Total

6

Last Release

3307d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/05b8edd2ee67b504fd11fb93b0185f7307edb8a700a4ece349ebafea1dcaf97a?d=identicon)[\_webkid](/maintainers/_webkid)

---

Top Contributors

[![kolodii-ivan](https://avatars.githubusercontent.com/u/1891846?v=4)](https://github.com/kolodii-ivan "kolodii-ivan (7 commits)")

---

Tags

WebkidJsTranslator

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/webkid-js-translator/health.svg)

```
[![Health](https://phpackages.com/badges/webkid-js-translator/health.svg)](https://phpackages.com/packages/webkid-js-translator)
```

###  Alternatives

[illuminate/translation

The Illuminate Translation package.

6937.4M557](/packages/illuminate-translation)[erag/laravel-lang-sync-inertia

A powerful Laravel package for syncing and managing language translations across backend and Inertia.js (Vue/React) frontends, offering effortless localization, auto-sync features, and smooth multi-language support for modern Laravel applications.

4821.5k](/packages/erag-laravel-lang-sync-inertia)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
