diff --git a/packages/table-rate-shipping/resources/lang/en/auth.php b/packages/table-rate-shipping/resources/lang/en/auth.php new file mode 100644 index 0000000000..dc2b2382a1 --- /dev/null +++ b/packages/table-rate-shipping/resources/lang/en/auth.php @@ -0,0 +1,9 @@ + 'Manage Shipping', + 'permissions.shipping:manage.description' => 'Allow the staff member to manage shipping', +]; diff --git a/packages/table-rate-shipping/src/ShippingServiceProvider.php b/packages/table-rate-shipping/src/ShippingServiceProvider.php index 7ed93f7309..0b7da26d04 100644 --- a/packages/table-rate-shipping/src/ShippingServiceProvider.php +++ b/packages/table-rate-shipping/src/ShippingServiceProvider.php @@ -8,6 +8,7 @@ use Illuminate\Database\Events\NoPendingMigrations; use Illuminate\Support\Facades\Event; use Illuminate\Support\ServiceProvider; +use Illuminate\Translation\Translator; use Lunar\Base\ShippingModifiers; use Lunar\Facades\Discounts; use Lunar\Facades\ModelManifest; @@ -50,6 +51,8 @@ public function boot(ShippingModifiers $shippingModifiers) $this->loadTranslationsFrom(__DIR__.'/../resources/lang', 'lunarpanel.shipping'); + $this->mergeTranslationsForPanel(); + if (! config('lunar.database.disable_migrations', false)) { $this->loadMigrationsFrom(__DIR__.'/../database/migrations'); } @@ -126,4 +129,36 @@ protected function registerStateListeners(): void ); } } + + private function mergeTranslationsForPanel(): void + { + $this->app->booted(function ($app) { + /** @var Translator $translator */ + $translator = $app['translator']; + + $locale = $app->getLocale(); + $group = 'auth'; + $namespace = 'lunarpanel'; + + $originalLines = $translator->get("{$namespace}::{$group}", [], $locale); + + if (! is_array($originalLines)) { + $originalLines = []; + } + + $langFilePath = __DIR__."/../resources/lang/{$locale}/{$group}.php"; + + if (file_exists($langFilePath)) { + $langLines = require $langFilePath; + + $mergedLines = collect(array_replace_recursive($originalLines, $langLines))->mapWithKeys(function ($line, $key) use ($group) { + return [ + "{$group}.{$key}" => $line, + ]; + })->toArray(); + + $translator->addLines($mergedLines, $locale, $namespace); + } + }); + } }