<?php
declare(strict_types=1);
namespace Arcanedev\Support\Providers\Concerns;
/**
* Trait HasTranslations
*
* @author ARCANEDEV <arcanedev.maroc@gmail.com>
*/
trait HasTranslations
{
/* -----------------------------------------------------------------
| Main Methods
| -----------------------------------------------------------------
*/
/**
* Get the translations' folder name.
*/
protected function getTranslationsFolderName(): string
{
return 'translations';
}
/**
* Get the translations' path.
*/
protected function getTranslationsPath(): string
{
return $this->getBasePath().DIRECTORY_SEPARATOR.$this->getTranslationsFolderName();
}
/**
* Get the destination views path.
*/
protected function getTranslationsDestinationPath(): string
{
return $this->app->langPath(
'vendor'.DIRECTORY_SEPARATOR.$this->getPackageName()
);
}
/**
* Publish the translations.
*/
protected function publishTranslations(?string $path = null): void
{
$this->publishes([
$this->getTranslationsPath() => $path ?: $this->getTranslationsDestinationPath(),
], $this->getPublishedTags('translations'));
}
/**
* Load the translations files.
*/
protected function loadTranslations(): void
{
$path = $this->getTranslationsPath();
$this->loadTranslationsFrom($path, $this->getPackageName());
$this->loadJsonTranslationsFrom($path);
}
}