Localisation: C3P0 for Laravel. Take a look at contributing.md to see a to do list.
Via Composer run the following:
# 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 migrateThe package assumes a standard Laravel installation if the bundled default contollers for the entities are to be used. The bundled controllers extend from App\Http\Controllers\Controller. If other, custom base controllers are used as part of the installation, refer to Customizing.
The package provides the following tags for publishing individual components for customizing:
| Tag | Description |
|---|---|
pwweb.localisation.config |
Publish the configuration files to e.g. adjust database table names. |
pwweb.localisation.migrations |
Publish the migration file(s) to make alterations to the database tables. |
pwweb.localisation.language |
Publish the language files to make adjustments to the translation strings. |
pwweb.localisation.views |
Publish the view files to make adjustments to the overall structure of the views. |
It is recommended to change your app.php to use both the ISO-639-1 ISO Language Code as well as the ISO-3166 ISO Country Code. This can be achieved by changing the following two variables:
<?php
return [
...
'locale' => 'en-GB',
'fallback_locale' => 'en-GB',
...
];The package provides a trait HasAddresses which can be used to allow models to be associated with addresses.
<?php
namespace Path\To;
use Illuminate\Database\Eloquent\Model;
use PWWEB\Localisation\Traits\HasAddresses;
class MyModel extends Model
{
use HasAddresses;
}The localisation package provides a language switcher that can easily be added to blade templates as follows (note: the <div> is exemplary):
...
<div class="anyContainer">
{{ Localisation::languageSelector() }}
</div>
...The package provides a graphql.schema file for use within your parent project. This can be included in your primary schema file as follows:
#import ../vendor/pwweb/localisation/graphql/schema.graphqlNote: don't forget to update the vendor path should yours be in a different location, relative to your primary schema file.
During install via composer you get the following messages:
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.This is due to the command php artisan config:cache has been run. We suggest you delete the cache file bootstrap/cache/config.php and then run composer dump-autoload to be sure.
Please see the changelog for more information on what has changed recently.
Please see contributing.md for details and a todolist.
If you discover any security related issues, please use the issue tracker.
Copyright © pw-websolutions.com. Please see the license file for more information.
