PHP code example of qsque / filament-translation-helper
1. Go to this page and download the library: Download qsque/filament-translation-helper library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
qsque / filament-translation-helper example snippets
use Qsque\FilamentTranslationHelper\Resources\BaseResource;
class UserResource extends BaseResource
{
protected static ?string $model = User::class;
// Resource labels are automatically translated from:
// resources.user.label and resources.user.plural_label
}
use Filament\Forms\Form;
use Filament\Forms\Components\TextInput;
public function form(Form $form): Form
{
return $form->schema([
TextInput::make('name'), // → "Name" or translated
TextInput::make('email'), // → "Email" or translated
TextInput::make('first_name'), // → "First Name" or translated
]);
}
use Filament\Tables\Table;
use Filament\Tables\Columns\TextColumn;
public function table(Table $table): Table
{
return $table->columns([
TextColumn::make('name'), // → "Name" or translated
TextColumn::make('created_at'), // → "Created At" or translated
]);
}
use Qsque\FilamentTranslationHelper\Components\LanguageSwitcher;
public function panel(Panel $panel): Panel
{
return $panel
->userMenuItems([
LanguageSwitcher::getUserMenuItem(),
]);
}
class UserProfileResource extends Resource
{
protected static function getResourceKey(): string
{
return 'user-profile'; // Uses resources.user-profile.*
}
}
use Qsque\FilamentTranslationHelper\Http\Middleware\SetLocale;
public function panel(Panel $panel): Panel
{
return $panel
->middleware([
SetLocale::class,
]);
}
use Qsque\FilamentTranslationHelper\Support\TranslationHelper;
// Get translation with automatic fallback
$label = TranslationHelper::getWithFallback('sections.user_details');
// Returns: "User Details" (auto-generated) or actual translation
// Check if translation exists
if (TranslationHelper::hasTranslation('common.fields.custom_field')) {
// Use translation
}
use Qsque\FilamentTranslationHelper\Resources\BaseResource;
class UserResource extends BaseResource
{
protected static ?string $model = User::class;
// Automatically translates:
// - getLabel() from resources.user.label
// - getPluralLabel() from resources.user.plural_label
}
use Qsque\FilamentTranslationHelper\Contracts\TranslationStrategy;
class CustomTranslationStrategy implements TranslationStrategy
{
public function getTranslation(string $key, string $fallback = null): string
{
// Your custom translation logic
}
}
// In your PanelProvider
public function panel(Panel $panel): Panel
{
return $panel
->userMenuItems([
LanguageSwitcher::getUserMenuItem(),
]);
}
// You can also implement your own user menu item
use Filament\Support\Facades\FilamentView;
use Filament\Navigation\MenuItem;
use Filament\Forms\Components\Radio;
MenuItem::make()
->label(config('filament-translation-helper.available_locales')[app()->getLocale()])
->icon('heroicon-o-language')
->form([
Radio::make('locale')
->options(config('filament-translation-helper.available_locales'))
->default(app()->getLocale())
->inline(false)
->hiddenLabel(),
])
->action(function (array $data) {
return redirect()->to(route('locale.switch', $data['locale']));
})
use Filament\Forms\Form;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle;
use Filament\Forms\Components\Section;
public function form(Form $form): Form
{
return $form->schema([
Section::make('general') // → "General" or translated
->schema([
TextInput::make('name') // → "Name" or translated
->
use Filament\Tables\Table;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\BooleanColumn;
public function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('id') // → "ID"
->sortable(),
TextColumn::make('name') // → "Name" or translated
->searchable(),
TextColumn::make('email') // → "Email" or translated
->searchable(),
BooleanColumn::make('is_active') // → "Is Active" or translated,
TextColumn::make('created_at') // → "Created At" or translated
->dateTime(),
]);
}