Files
2026-05-09 17:32:17 +02:00

57 lines
1.7 KiB
PHP
Executable File

<?php
namespace App\Filament\Traits;
use Illuminate\Support\Str;
trait TranslatableResource
{
public static function getNavigationGroup(): ?string
{
// @phpstan-ignore-next-line
if (! property_exists(static::class, 'navigationGroup') || ! isset(static::$navigationGroup)) {
return null;
}
// @phpstan-ignore-next-line
$translated = __(
sprintf('filament::resources.navigations.%s', static::$navigationGroup),
);
return is_array($translated) ? (string) ($translated[0] ?? '') : (string) $translated;
}
public static function getPluralModelLabel(): string
{
// @phpstan-ignore-next-line
$translated = __(sprintf(
Str::endsWith(static::class, 'RelationManager')
? 'filament::resources.resources.%s.navigation_label'
: 'filament::resources.resources.%s.plural',
static::$translateIdentifier,
));
return is_array($translated) ? (string) ($translated[0] ?? '') : (string) $translated;
}
public static function getNavigationLabel(): string
{
// @phpstan-ignore-next-line
$translated = __(
sprintf('filament::resources.resources.%s.navigation_label', static::$translateIdentifier),
);
return is_array($translated) ? (string) ($translated[0] ?? '') : (string) $translated;
}
public static function getModelLabel(): string
{
// @phpstan-ignore-next-line
$translated = __(
sprintf('filament::resources.resources.%s.label', static::$translateIdentifier),
);
return is_array($translated) ? (string) ($translated[0] ?? '') : (string) $translated;
}
}