mariuzzo/ laravel-js-localization
Laravel JavaScript 本地化
Requires
- php: ^5.4 || ^7.0 || ^8.0
- illuminate/config: ^4.2 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
- illuminate/console: ^4.2 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
- illuminate/filesystem: ^4.2 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
- tedivm/jshrink: ~1.0
Requires (Dev)
- orchestra/testbench: ^2.2 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0
- phpunit/phpunit: ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
This package is auto-updated.
Last update: 2024-09-09 14:14:22 UTC
README
此包将您的Laravel应用中的所有本地化消息转换为JavaScript,使用一个小型库与这些消息进行交互,语法与您熟悉的非常相似。
功能
- 支持Laravel 4.2, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 6.x, 7.x和8.x!
- 包含 Lang.js(一个受Laravel的
Translator
类高度启发的精简库)。 - 允许指定要转换为JS的期望lang文件。
- Lang.js API基于Laravel的
Translator
类。无需学习整个API。
安装
composer require mariuzzo/laravel-js-localization
在您的Laravel应用中,转到config/app.php
并添加以下服务提供者
Mariuzzo\LaravelJsLocalization\LaravelJsLocalizationServiceProvider::class
用法
Laravel-JS-Localization
包提供了一个命令,该命令生成所有在app/lang
(Laravel 4)或resources/lang
(Laravel 5)目录中找到的消息的JavaScript版本。生成的JavaScript文件将包含所有您的消息以及Lang.js(一个受Laravel的Translator
类高度启发的精简库)。
生成JS消息
php artisan lang:js
指定自定义目标
php artisan lang:js public/assets/dist/lang.dist.js
压缩JS文件
php artisan lang:js -c
指定自定义源文件夹
php artisan lang:js public/assets/dist/lang.dist.js -s themes/default/lang
输出JSON文件。
php artisan lang:js --json
配置
首先,运行以下命令发布默认包的配置文件
php artisan vendor:publish --provider="Mariuzzo\LaravelJsLocalization\LaravelJsLocalizationServiceProvider"
配置将发布到config/localization-js.php
。
您可以编辑此文件以在您的JavaScript代码中定义所需的消息。只需编辑配置文件中的messages
数组。空的messages数组将包含构建中所有的语言文件。
仅将pagination.php
和validation.php
文件包含在构建过程中
<?php return [ 'messages' => [ 'pagination', 'validation', ], ];
使用gulp(可选)
安装gulp-shell
,然后在您的gulpfile.js
中直接运行它
var shell = require('gulp-shell'); gulp.task('langjs', shell.task('php artisan lang:js -c public/js/messages.js'));
使用Laravel的elixir(可选)
在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'))); }); return this.queueTask('langjs'); });
Elixir 4.0+
var Task = elixir.Task; elixir.extend('langjs', function(path) { new Task('langjs', function() { gulp.src('').pipe(shell('php artisan lang:js ' + (path || 'public/js/messages.js'))); }); });
然后像这样使用它
elixir(function(mix) { mix.langjs(); });
使用Laravel 5.4+的Laravel的Mix(可选)
将"webpack-shell-plugin-next"添加到package.json的"devDependencies"部分。
将以下内容添加到webpack.mix.js中
const WebpackShellPluginNext = require('webpack-shell-plugin-next'); // Add shell command plugin configured to create JavaScript language file mix.webpackConfig({ plugins: [ new WebpackShellPluginNext({onBuildStart:['php artisan lang:js --quiet'], onBuildEnd:[]}) ] });
文档
这是关于Lang.js(由Laravel-JS-Localization
包含的精简JavaScript库)的快速文档。 Lang.js(一个受Laravel的Translator
类高度启发的精简库)。
💁 前往Lang.js文档以查看所有可用方法。
获取消息
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文档以查看所有可用方法。
想要贡献吗?
- 将此存储库Fork并克隆它。
- 从 develop 分支创建一个 功能分支:
git checkout develop; git checkout -b feature-foo
。 - 推送您的提交并创建一个拉取请求。
先决条件
您需要安装以下软件。
- Composer。
- PHP 5.5+。
开发设置
安装所有必需的软件后,您可以运行以下命令来准备一切
-
安装 PHP 依赖
composer install
-
安装测试依赖
composer test-install
现在您可以开始了!祝您编码愉快!
测试
该项目使用 PHPUnit。所有测试都存储在 tests
目录中。要在终端运行所有测试,请输入
composer test
由 Rubens Mariuzzo 用 ❤️ 制作。