pwweb/localisation

此包已被废弃,不再维护。作者建议使用pwweb/laravel-core包。

Laravel的本地化包

0.2.7-beta 2020-09-07 16:12 UTC

README

Version Downloads Scrutinizer Code Quality StyleCI License: MIT

本地化:C3P0 for Laravel。查看contributing.md以查看待办事项列表。

安装

通过Composer运行以下命令

# Install the package.
$ composer require pwweb/localisation

# Publish config, migration, languages and controllers.
# Note: Individual publishing tags are available, see chapter Customizing.
$ php artisan vendor:publish --provider="PWWEB\Localisation\LocalisationServiceProvider"

# Run migrations
$ php artisan migrate

先决条件

如果需要使用捆绑的默认控制器,则此包假定标准Laravel安装。捆绑的控制器扩展自App\Http\Controllers\Controller。如果使用其他,自定义基础控制器作为安装的一部分,请参阅Customizing

配置

自定义

该包提供以下标签以发布用于自定义的单个组件

标签 描述
pwweb.localisation.config 发布配置文件以调整数据库表名等。
pwweb.localisation.migrations 发布迁移文件以更改数据库表。
pwweb.localisation.language 发布语言文件以调整翻译字符串。
pwweb.localisation.views 发布视图文件以调整视图的整体结构。

默认和后备语言

建议将您的app.php更改为同时使用ISO-639-1 ISO语言代码以及ISO-3166 ISO国家代码。这可以通过更改以下两个变量实现

<?php

return [
    ...
    'locale' => 'en-GB',
    'fallback_locale' => 'en-GB',
    ...
];

使用方法

地址

此包提供了一个trait HasAddresses,可以用于允许模型与地址相关联。

<?php

namespace Path\To;

use Illuminate\Database\Eloquent\Model;
use PWWEB\Localisation\Traits\HasAddresses;

class MyModel extends Model
{
    use HasAddresses;
}

语言切换器

本地化包提供了一个语言切换器,可以轻松地将其添加到blade模板中,如下所示(注意:此处的<div>仅为示例)

...
<div class="anyContainer">
    {{ Localisation::languageSelector() }}
</div>
...

GraphQL

此包提供了一个用于在父项目中使用的graphql.schema文件。这可以通过以下方式包含在您的主schema文件中

#import ../vendor/pwweb/localisation/graphql/schema.graphql

注意:如果您的主schema文件位置不同,请务必更新供应商路径。

常见问题解答

通过Composer安装时,您会收到以下消息

 ErrorException  : Trying to access array offset on value of type null

  at /var/www/vendor/pwweb/localisation/src/LocalisationServiceProvider.php:107
    103|     protected function registerModelBindings()
    104|     {
    105|         $config = $this->app->config['localisation.models'];
    106|
  > 107|         $this->app->bind(CountryContract::class, $config['country']);
    108|         $this->app->bind(LanguageContract::class, $config['language']);
    109|         $this->app->bind(CurrencyContract::class, $config['currency']);
    110|     }
    111|

  Exception trace:

  1   Illuminate\Foundation\Bootstrap\HandleExceptions::handleError("Trying to access array offset on value of type null", "/var/www/vendor/pwweb/localisation/src/LocalisationServiceProvider.php", [])
      /var/www/vendor/pwweb/localisation/src/LocalisationServiceProvider.php:107

  2   PWWeb\Localisation\LocalisationServiceProvider::registerModelBindings()
      /var/www/vendor/pwweb/localisation/src/LocalisationServiceProvider.php:81

  Please use the argument -v to see more details.

这是由于已运行php artisan config:cache命令。我们建议您删除缓存文件bootstrap/cache/config.php,然后运行composer dump-autoload以确保。

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

贡献

请参阅contributing.md以获取详细信息和一个待办事项清单。

安全

如果您发现任何与安全相关的问题,请使用问题跟踪器

鸣谢

许可协议

版权所有 © pw-websolutions.com。请参阅许可文件以获取更多信息。