michele-angioni / laravel-js-lang-converter
JavaScript 中的 Laravel 本地化
Requires
- php: >=7.0
- laravel/framework: ~5.5
- tedivm/jshrink: 1.0.*
Requires (Dev)
- mockery/mockery: 0.9.*
- orchestra/testbench: ~3.5
- phpunit/phpunit: ~6.0|~7.0
README
JavaScript 中的 Laravel 本地化。
Laravel JS Lang Converter 将您的 Laravel 应用程序的所有本地化消息转换为 JavaScript,提供了一个小型 JavaScript 库以在客户端与这些消息交互。
大部分工作是在 Mariuzzo 的包 中开发的。
支持 Laravel 5.5+。需要 PHP 7.0。对于 Laravel 5.1 - 5.4 版本,请使用 v2.x 分支。
安装
将以下行添加到您的 composer.json
文件中的 require
部分。
"michele-angioni/laravel-js-lang-converter": "~3.0"
然后运行 composer update
或 composer install
。
然后您需要在您的 app/config/app.php
文件中添加 Laravel JS Lang Converter 服务提供者。
'providers' => [ // ... 'MicheleAngioni\LaravelJsLangConverter\LaravelJsLangConverterServiceProvider', // ... ],
为了使用一些包功能,您需要通过 artisan 命令 php artisan vendor:publish
发布配置文件。它将在您的配置目录中创建 laravel_js_lang.php
文件。
现在您已经完成了!
用法
该项目包含一个命令,该命令可以生成所有在 resources/lang
目录中找到的消息的 JavaScript 版本。生成的 JavaScript 文件将包含所有消息和一个类似 Laravel 的 Lang
类的轻量级库。
生成 JS 消息
php artisan lang:js
指定自定义目标
php artisan lang:js public/assets/dist/lang.dist.js
仅转换某些文件
如果您不想转换所有的 lang 文件,您可以在您的 laravel_js_lang.php
配置文件中指定要转换的文件。在 files
数组下,只需添加您的源文件列表,如下所示
'files' => [ 'pagination', 'validation' ]
压缩 JS 文件
php artisan lang:js -c
使用 gulp 发布(可选)
-
使用
npm install --save-dev gulp-shell
在 https://github.com/sun-zheng-an/gulp-shell 中安装gulp-shell
。 -
在您的
gulpfile.js
中创建 elixir 扩展var shell = require('gulp-shell'); //...... var Task = elixir.Task; elixir.extend('langjs', function(path, minimize) { new Task('langjs', function() { var command = "php artisan lang:js " + (path || "public/js/messages.js"); if (minimize) { command += " -c"; } return gulp.src("").pipe(shell(command)); }); }); gulp.task('langJs', shell.task('php artisan lang:js -c public/js/messages.js'));
-
使用新的 elixir 任务
elixir(function(mix) { var path = "public/js"; var minimize = true; mix.langjs(path, minimize); });
文档
这是关于轻量级 JavaScript 库的文档。该库高度灵感来自 Laravel 的 Lang
类。
获取消息
Lang.get('messages.home');
获取带有替换的消息
Lang.get('messages.welcome', { name: 'Joe' });
更改区域设置
Lang.setLocale('es');
检查消息键是否存在
Lang.has('messages.foo');
基于计数的单数和复数消息支持
Lang.choice('messages.apples', 10);
使用替换调用 choice
方法
Lang.choice('messages.apples', 10, { name: 'Joe' });
有关更详细的信息,请参阅源代码: Lang.js。
如何贡献
欢迎拉取请求。
- 从仓库分叉并克隆。
- 从 develop 分支创建分支:
git checkout -b feature-foo
。 - 推送您的提交并创建拉取请求。
设置开发环境
先决条件
您需要安装以下软件。
- Composer
- NodeJS
- NPM
- PHP 7.0+
在安装所有必需的软件后,您可以运行以下命令来准备一切:
- 安装 PHP 依赖项
composer install
- 安装 NPM 依赖项
npm install -g jasmine-node npm install
现在您可以开始了!祝您编码愉快!
单元测试
该项目使用 Jasmine-Node 和 PHPUnit。所有测试都存储在 tests
目录中。
要在终端运行所有JS测试,请输入以下命令
npm test
要在终端运行所有PHP测试,请输入以下命令
vendor/bin/phpunit tests/