michele-angioni/laravel-js-lang-converter

JavaScript 中的 Laravel 本地化

v3.1.0 2018-02-09 10:20 UTC

This package is auto-updated.

Last update: 2024-08-29 03:21:01 UTC


README

JavaScript 中的 Laravel 本地化。

Latest Stable Version License Build Status SensioLabsInsight

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 updatecomposer 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 发布(可选)

  1. 使用 npm install --save-dev gulp-shellhttps://github.com/sun-zheng-an/gulp-shell 中安装 gulp-shell

  2. 在您的 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'));
  3. 使用新的 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

如何贡献

欢迎拉取请求。

  1. 从仓库分叉并克隆。
  2. 从 develop 分支创建分支: git checkout -b feature-foo
  3. 推送您的提交并创建拉取请求。

设置开发环境

先决条件

您需要安装以下软件。

  • Composer
  • NodeJS
  • NPM
  • PHP 7.0+

在安装所有必需的软件后,您可以运行以下命令来准备一切:

  1. 安装 PHP 依赖项
composer install
  1. 安装 NPM 依赖项
npm install -g jasmine-node

npm install

现在您可以开始了!祝您编码愉快!

单元测试

该项目使用 Jasmine-Node 和 PHPUnit。所有测试都存储在 tests 目录中。

要在终端运行所有JS测试,请输入以下命令

npm test

要在终端运行所有PHP测试,请输入以下命令

vendor/bin/phpunit tests/