On the product Variants management screen (ProductOptionsWidget + resources/views/resources/product-resource/widgets/product-options.blade.php), three strings always render in English even when the app locale and lunarpanel translations are set to another language (reproduced with APP_LOCALE=tr):
- "Add shared option" button —
addSharedOptionAction() calls Action::make('addSharedOption') without ->label(), so Filament humanises the action name. The key lunarpanel::productoption.widgets.product-options.actions.add-shared-option.label exists and is translated in the shipped locales, but it is never applied to the action.
- "Save variants" button —
saveVariantsAction() calls Action::make('saveVariants') without ->label(). There is no save-variants.label key at all (only a notifications.save-variants.success.title).
- "No Product Options Configured" empty state — hardcoded in the Blade view:
<x-filament-tables::empty-state heading="No Product Options Configured" ...>, bypassing translations. The sibling variants-table empty state on the same view already uses a translation key (variants-table.empty.heading).
Version
To reproduce
- Set the panel to a non-English locale (e.g.
APP_LOCALE=tr) with lunarpanel translations present.
- Open any product → Variants → Configure Options.
- The "Add shared option" and "Save variants" buttons, and the "No Product Options Configured" empty state, render in English while the rest of the widget is translated.
Expected
All three strings use the lunarpanel translations like the rest of the widget.
Suggested fix
- Add
->label(__('lunarpanel::productoption.widgets.product-options.actions.add-shared-option.label')) to the addSharedOption action.
- Add a
save-variants.label key to resources/lang/*/productoption.php and apply it to the saveVariants action.
- Route the hardcoded empty-state heading through a translation key (e.g. reuse
options-list.empty.heading).
Happy to open a PR if that would help.
On the product Variants management screen (
ProductOptionsWidget+resources/views/resources/product-resource/widgets/product-options.blade.php), three strings always render in English even when the app locale andlunarpaneltranslations are set to another language (reproduced withAPP_LOCALE=tr):addSharedOptionAction()callsAction::make('addSharedOption')without->label(), so Filament humanises the action name. The keylunarpanel::productoption.widgets.product-options.actions.add-shared-option.labelexists and is translated in the shipped locales, but it is never applied to the action.saveVariantsAction()callsAction::make('saveVariants')without->label(). There is nosave-variants.labelkey at all (only anotifications.save-variants.success.title).<x-filament-tables::empty-state heading="No Product Options Configured" ...>, bypassing translations. The sibling variants-table empty state on the same view already uses a translation key (variants-table.empty.heading).Version
lunarphp/lunar1.3.0To reproduce
APP_LOCALE=tr) withlunarpaneltranslations present.Expected
All three strings use the
lunarpaneltranslations like the rest of the widget.Suggested fix
->label(__('lunarpanel::productoption.widgets.product-options.actions.add-shared-option.label'))to theaddSharedOptionaction.save-variants.labelkey toresources/lang/*/productoption.phpand apply it to thesaveVariantsaction.options-list.empty.heading).Happy to open a PR if that would help.