mariuzzo/laravel-js-localization

Laravel JavaScript 本地化

v1.11.1 2024-03-31 11:24 UTC

README

Laravel 5.5 Laravel 4.2 Latest Stable Version Total Downloads License

此包将您的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.phpvalidation.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文档以查看所有可用方法。

想要贡献吗?

  1. 将此存储库Fork并克隆它。
  2. 从 develop 分支创建一个 功能分支git checkout develop; git checkout -b feature-foo
  3. 推送您的提交并创建一个拉取请求。

先决条件

您需要安装以下软件。

  • Composer。
  • PHP 5.5+。

开发设置

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

  1. 安装 PHP 依赖

    composer install
  2. 安装测试依赖

    composer test-install

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

测试

该项目使用 PHPUnit。所有测试都存储在 tests 目录中。要在终端运行所有测试,请输入

composer test

Rubens Mariuzzo 用 ❤️ 制作。

MIT 许可证