# Translation Keys Quick Reference

## Translation File Naming Pattern

For each Resource file: `{ResourceName}Resource.php`
Create translation files: `{resource_name}_resource.php`

Example:
- Resource: `ProductResource.php`
- Translation: `product_resource.php`

## Translation Key Patterns

### 1. Direct Field Translation
```php
// In Resource
TextInput::make('name')
    ->label(__('filament/admin/product_resource.name'))

// In Translation File
'name' => 'Name',
```

### 2. Relationship Fields
```php
// In Resource
Select::make('production_company_id')
    ->label(__('filament/admin/product_resource.production_company_id'))

// In Translation File
'production_company_id' => 'Production Company',
```

### 3. Relationship Column Display
```php
// In Resource  
TextColumn::make('productionCompany.name')
    ->label(__('filament/admin/product_resource.production_company.name'))

// In Translation File
'production_company.name' => 'Production Company',
```

### 4. Nested Relationships
```php
// In Resource
TextColumn::make('product.production_company.name')
    ->label(__('filament/admin/admin_store_inventory_resource.product.production_company.name'))

// In Translation File
'product.production_company.name' => 'Production Company',
```

### 5. Multiple Relationship (Many-to-Many)
```php
// In Resource
Select::make('activeIngredients')
    ->label(__('filament/admin/product_resource.active_ingredients'))

TextColumn::make('activeIngredients.name')
    ->label(__('filament/admin/product_resource.active_ingredients.name'))

// In Translation File
'active_ingredients' => 'Active Ingredients',
'active_ingredients.name' => 'Active Ingredients',
```

### 6. Filter Fields with Sub-fields
```php
// In Resource
Filter::make('price_range')
    ->label(__('filament/admin/product_resource.price_range'))
    ->form([
        TextInput::make('price_from')
            ->label(__('filament/admin/product_resource.price_from')),
        TextInput::make('price_to')
            ->label(__('filament/admin/product_resource.price_to')),
    ])

// In Translation File
'price_range' => 'Price Range',
'price_from' => 'Price From',
'price_to' => 'Price To',
```

### 7. Date Range Filters
```php
// In Resource
Filter::make('created_at')
    ->label(__('filament/admin/product_resource.created_at'))
    ->form([
        DatePicker::make('created_from')
            ->label(__('filament/admin/product_resource.created_from')),
        DatePicker::make('created_until')
            ->label(__('filament/admin/product_resource.created_until')),
    ])

// In Translation File
'created_at' => 'Created At',
'created_from' => 'Created From',
'created_until' => 'Created Until',
```

### 8. Action Labels
```php
// In Resource
Action::make('import_products')
    ->label(__('filament/admin/store_resource.import_products'))

// In Translation File
'import_products' => 'Import Products',
```

## Complete Resource Example

### ProductResource.php (Excerpt)
```php
public static function form(Form $form): Form
{
    return $form->schema([
        TextInput::make('name_arabic')
            ->label(__('filament/admin/product_resource.name_arabic')),
        
        TextInput::make('price')
            ->label(__('filament/admin/product_resource.price')),
        
        Select::make('production_company_id')
            ->label(__('filament/admin/product_resource.production_company_id'))
            ->relationship('productionCompany', 'name'),
    ]);
}

public static function table(Table $table): Table
{
    return $table->columns([
        TextColumn::make('name_arabic')
            ->label(__('filament/admin/product_resource.name_arabic')),
        
        TextColumn::make('productionCompany.name')
            ->label(__('filament/admin/product_resource.production_company.name')),
    ]);
}
```

### product_resource.php (Arabic)
```php
<?php

return [
    'name_arabic' => 'الاسم بالعربية',
    'price' => 'السعر',
    'production_company_id' => 'الشركة المنتجة',
    'production_company.name' => 'الشركة المنتجة',
];
```

### product_resource.php (English)
```php
<?php

return [
    'name_arabic' => 'Arabic Name',
    'price' => 'Price',
    'production_company_id' => 'Production Company',
    'production_company.name' => 'Production Company',
];
```

### product_resource.php (French)
```php
<?php

return [
    'name_arabic' => 'Nom en Arabe',
    'price' => 'Prix',
    'production_company_id' => 'Société de Production',
    'production_company.name' => 'Société de Production',
];
```

## Naming Conventions

### Resource to Translation File
| Resource File | Translation File |
|--------------|------------------|
| ProductResource.php | product_resource.php |
| OrderResource.php | order_resource.php |
| UserResource.php | user_resource.php |
| ActiveIngredientResource.php | active_ingredient_resource.php |
| ProductionCompanyResource.php | production_company_resource.php |
| AdminStoreInventoryResource.php | admin_store_inventory_resource.php |

### Field to Translation Key
| Field Name | Translation Key |
|-----------|-----------------|
| name | name |
| name_arabic | name_arabic |
| production_company_id | production_company_id |
| productionCompany.name | production_company.name |
| activeIngredients | active_ingredients |
| activeIngredients.name | active_ingredients.name |

**Pattern:** 
- Direct fields: use exact field name
- Relationships: use snake_case of relationship name
- Relationship columns: use `relationship.field` format (in snake_case)

## Testing Translations

To verify translations are working:

```bash
# Clear cache
php artisan cache:clear
php artisan config:clear
php artisan view:clear

# Check specific translation
php artisan tinker
>>> __('filament/admin/product_resource.name_arabic')
=> "الاسم بالعربية"
```

## Adding New Fields

When adding a new field to a resource:

1. Add the field in Resource file with `__()` helper:
```php
TextInput::make('new_field')
    ->label(__('filament/admin/resource_name.new_field'))
```

2. Add translation key to ALL language files:
```php
// ar/filament/admin/resource_name.php
'new_field' => 'الحقل الجديد',

// en/filament/admin/resource_name.php
'new_field' => 'New Field',

// fr/filament/admin/resource_name.php
'new_field' => 'Nouveau Champ',
```

## Common Translation Keys

### Standard Fields
- `name` - الاسم / Name / Nom
- `email` - البريد الإلكتروني / Email / Email
- `phone` - الهاتف / Phone / Téléphone
- `address` - العنوان / Address / Adresse
- `photo` - الصورة / Photo / Photo
- `is_active` - نشط / Active / Actif
- `created_at` - تاريخ الإنشاء / Created At / Créé Le
- `deleted_at` - تاريخ الحذف / Deleted At / Supprimé Le

### Relationship Fields
- `user_id` - المستخدم / User / Utilisateur
- `store_id` - الصيدلية / Pharmacy / Pharmacie
- `product_id` - المنتج / Product / Produit
- `team_id` - الفريق / Team / Équipe

### Filter Fields
- `date_from` - التاريخ من / Date From / Date De
- `date_to` - التاريخ إلى / Date To / Date À
- `price_from` - السعر من / Price From / Prix De
- `price_to` - السعر إلى / Price To / Prix À

---

**Last Updated:** March 6, 2026
