mirror of
https://github.com/Einundzwanzig-Podcast/einundzwanzig-portal.git
synced 2025-12-11 06:46:47 +00:00
huge Laravel 10 upgrade
This commit is contained in:
185
support/laravel-translation/src/TranslationServiceProvider.php
Normal file
185
support/laravel-translation/src/TranslationServiceProvider.php
Normal file
@@ -0,0 +1,185 @@
|
||||
<?php
|
||||
|
||||
namespace JoeDixon\Translation;
|
||||
|
||||
use Illuminate\Filesystem\Filesystem;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use JoeDixon\Translation\Console\Commands\AddLanguageCommand;
|
||||
use JoeDixon\Translation\Console\Commands\AddTranslationKeyCommand;
|
||||
use JoeDixon\Translation\Console\Commands\ListLanguagesCommand;
|
||||
use JoeDixon\Translation\Console\Commands\ListMissingTranslationKeys;
|
||||
use JoeDixon\Translation\Console\Commands\SynchroniseMissingTranslationKeys;
|
||||
use JoeDixon\Translation\Console\Commands\SynchroniseTranslationsCommand;
|
||||
use JoeDixon\Translation\Drivers\Translation;
|
||||
|
||||
class TranslationServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* Bootstrap the package services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
$this->loadViews();
|
||||
|
||||
$this->registerRoutes();
|
||||
|
||||
$this->publishConfiguration();
|
||||
|
||||
$this->publishAssets();
|
||||
|
||||
$this->loadMigrations();
|
||||
|
||||
$this->loadTranslations();
|
||||
|
||||
$this->registerHelpers();
|
||||
}
|
||||
|
||||
/**
|
||||
* Register package bindings in the container.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
$this->mergeConfiguration();
|
||||
|
||||
$this->registerCommands();
|
||||
|
||||
$this->registerContainerBindings();
|
||||
}
|
||||
|
||||
/**
|
||||
* Load and publish package views.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function loadViews()
|
||||
{
|
||||
$this->loadViewsFrom(__DIR__.'/../resources/views', 'translation');
|
||||
|
||||
$this->publishes([
|
||||
__DIR__.'/../resources/views' => resource_path('views/vendor/translation'),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register package routes.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function registerRoutes()
|
||||
{
|
||||
$this->loadRoutesFrom(__DIR__.'/../routes/web.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* Publish package configuration.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function publishConfiguration()
|
||||
{
|
||||
$this->publishes([
|
||||
__DIR__.'/../config/translation.php' => config_path('translation.php'),
|
||||
], 'config');
|
||||
}
|
||||
|
||||
/**
|
||||
* Merge package configuration.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function mergeConfiguration()
|
||||
{
|
||||
$this->mergeConfigFrom(__DIR__.'/../config/translation.php', 'translation');
|
||||
}
|
||||
|
||||
/**
|
||||
* Publish package assets.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function publishAssets()
|
||||
{
|
||||
$this->publishes([
|
||||
__DIR__.'/../public/assets' => public_path('vendor/translation'),
|
||||
], 'assets');
|
||||
}
|
||||
|
||||
/**
|
||||
* Load package migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function loadMigrations()
|
||||
{
|
||||
if (config('translation.driver') !== 'database') {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->loadMigrationsFrom(__DIR__.'/../database/migrations');
|
||||
}
|
||||
|
||||
/**
|
||||
* Load package translations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function loadTranslations()
|
||||
{
|
||||
$this->loadTranslationsFrom(__DIR__.'/../resources/lang', 'translation');
|
||||
|
||||
$this->publishes([
|
||||
__DIR__.'/../resources/lang' => resource_path('lang/vendor/translation'),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register package commands.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function registerCommands()
|
||||
{
|
||||
if ($this->app->runningInConsole()) {
|
||||
$this->commands([
|
||||
AddLanguageCommand::class,
|
||||
AddTranslationKeyCommand::class,
|
||||
ListLanguagesCommand::class,
|
||||
ListMissingTranslationKeys::class,
|
||||
SynchroniseMissingTranslationKeys::class,
|
||||
SynchroniseTranslationsCommand::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Register package helper functions.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function registerHelpers()
|
||||
{
|
||||
require __DIR__.'/../resources/helpers.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Register package bindings in the container.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function registerContainerBindings()
|
||||
{
|
||||
$this->app->singleton(Scanner::class, function () {
|
||||
$config = $this->app['config']['translation'];
|
||||
|
||||
return new Scanner(new Filesystem(), $config['scan_paths'], $config['translation_methods']);
|
||||
});
|
||||
|
||||
$this->app->singleton(Translation::class, function ($app) {
|
||||
return (new TranslationManager($app, $app['config']['translation'], $app->make(Scanner::class)))->resolve();
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user