diff --git a/README.md b/README.md index 61c8a203b1..7ec01edf64 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@

Lunar

> [!CAUTION] -> Version 1.x is currently in alpha release. We recommend this version for new projects, however, it is not feature-complete and therefore may not be deemed production-ready. +> Version 1.x is currently in beta release. We recommend this version for new projects, however, it is not feature-complete and therefore may not be deemed production-ready. [Lunar](https://lunarphp.io) is a set of Laravel packages that bring functionality akin to Shopify and other e-commerce platforms to diff --git a/docs/admin/overview.md b/docs/admin/overview.md index c2a3e40158..d2f0003abe 100644 --- a/docs/admin/overview.md +++ b/docs/admin/overview.md @@ -1,8 +1,8 @@ # Introduction -::: danger Alpha Release +::: danger Beta Release Although many Lunar sites have been launched using v1.x, you may not consider this version production-ready for your own -use and should exercise the same amount of caution as you would with any software in an alpha state. 馃殌 +use and should exercise the same amount of caution as you would with any software in an beta state. 馃殌 ::: Lunar's admin panel is powered by Filament v3. It allows you to easily extend the admin panel to suit your project. diff --git a/docs/core/installation.md b/docs/core/installation.md index 9633b8b4dc..cd572157ac 100644 --- a/docs/core/installation.md +++ b/docs/core/installation.md @@ -1,8 +1,8 @@ # Installation -::: danger Alpha Release +::: danger Beta Release Although many Lunar sites have been launched using v1.x, you may not consider this version production-ready for your own -use and should exercise the same amount of caution as you would with any software in an alpha state. 馃殌 +use and should exercise the same amount of caution as you would with any software in an beta state. 馃殌 ::: ## Requirements @@ -20,7 +20,7 @@ use and should exercise the same amount of caution as you would with any softwar ### Composer Require Package ```sh -composer require lunarphp/lunar:"^1.0.0-alpha" -W +composer require lunarphp/lunar:"^1.0.0-beta" -W ``` ::: tip diff --git a/docs/core/local-development.md b/docs/core/local-development.md index f3cf643e91..c5ec42339e 100644 --- a/docs/core/local-development.md +++ b/docs/core/local-development.md @@ -45,6 +45,11 @@ Update your `composer.json` file similar to the following. } ```` +Ensure minimum stability is set for development +```json + "minimum-stability": "dev", +```` + Run `composer update` from your Laravel application's root directory and fingers crossed you're all up and running,. ```sh diff --git a/docs/core/overview.md b/docs/core/overview.md index bbdb47fdb1..d274fa5781 100644 --- a/docs/core/overview.md +++ b/docs/core/overview.md @@ -1,8 +1,8 @@ # Welcome to Lunar! -::: danger Alpha Release -Although many Lunar sites have been launched using v1.x, you may not consider this version production-ready for your own -use and should exercise the same amount of caution as you would with any software in an alpha state. 馃殌 +::: danger Beta Release +Although many Lunar sites have been launched using v1.x, you may not consider this version production-ready for your own +use and should exercise the same amount of caution as you would with any software in an beta state. 馃殌 ::: We are delighted you are considering Lunar for your project. We've spent a lot of time developing this package to bring headless e-commerce functionality to Laravel. diff --git a/docs/core/reference/carts.md b/docs/core/reference/carts.md index 6d171c3d3f..9ef5955e50 100644 --- a/docs/core/reference/carts.md +++ b/docs/core/reference/carts.md @@ -129,15 +129,6 @@ foreach ($cart->shippingBreakdown->items as $shippingBreakdown) { } -foreach ($cart->discountBreakdown as $discountBreakdown) { - $discountBreakdown->discount_id - foreach ($discountBreakdown->lines as $discountLine) { - $discountLine->quantity - $discountLine->line - } - $discountBreakdown->total->value -} - foreach ($cart->discountBreakdown as $discountBreakdown) { $discountBreakdown->discount_id foreach ($discountBreakdown->lines as $discountLine) { diff --git a/packages/admin/resources/lang/es/actions.php b/packages/admin/resources/lang/es/actions.php new file mode 100644 index 0000000000..fe47f95174 --- /dev/null +++ b/packages/admin/resources/lang/es/actions.php @@ -0,0 +1,46 @@ + [ + 'create_root' => [ + 'label' => 'Crear colecci贸n ra铆z', + ], + 'create_child' => [ + 'label' => 'Crear colecci贸n secundaria', + ], + 'move' => [ + 'label' => 'Mover colecci贸n', + ], + 'delete' => [ + 'label' => 'Eliminar', + ], + ], + 'orders' => [ + 'update_status' => [ + 'label' => 'Actualizar estado', + 'wizard' => [ + 'step_one' => [ + 'label' => 'Estado', + ], + 'step_two' => [ + 'label' => 'Correos y notificaciones', + 'no_mailers' => 'No hay correos disponibles para este estado.', + ], + 'step_three' => [ + 'label' => 'Previsualizar y guardar', + 'no_mailers' => 'No se han seleccionado correos para la previsualizaci贸n.', + ], + ], + 'notification' => [ + 'label' => 'Estado del pedido actualizado', + ], + 'billing_email' => [ + 'label' => 'Correo de facturaci贸n', + ], + 'shipping_email' => [ + 'label' => 'Correo de env铆o', + ], + ], + + ], +]; diff --git a/packages/admin/resources/lang/es/activity.php b/packages/admin/resources/lang/es/activity.php new file mode 100644 index 0000000000..7e4aaf9ddc --- /dev/null +++ b/packages/admin/resources/lang/es/activity.php @@ -0,0 +1,29 @@ + 'Actividad', + + 'plural_label' => 'Actividades', + + 'table' => [ + 'subject' => 'Asunto', + 'description' => 'Descripci贸n', + 'log' => 'Registro', + 'logged_at' => 'Registrado en', + 'event' => 'Evento', + 'logged_from' => 'Registrado desde', + 'logged_until' => 'Registrado hasta', + ], + + 'form' => [ + 'causer_type' => 'Tipo de causante', + 'causer_id' => 'ID del causante', + 'subject_type' => 'Tipo de asunto', + 'subject_id' => 'ID del asunto', + 'description' => 'Descripci贸n', + 'attributes' => 'Atributos', + 'old' => 'Antiguo', + ], + +]; diff --git a/packages/admin/resources/lang/es/address.php b/packages/admin/resources/lang/es/address.php new file mode 100644 index 0000000000..424a6f7088 --- /dev/null +++ b/packages/admin/resources/lang/es/address.php @@ -0,0 +1,93 @@ + 'Direcci贸n', + + 'plural_label' => 'Direcciones', + + 'table' => [ + 'title' => [ + 'label' => 'T铆tulo', + ], + 'first_name' => [ + 'label' => 'Nombre', + ], + 'last_name' => [ + 'label' => 'Apellido', + ], + 'company_name' => [ + 'label' => 'Nombre de la empresa', + ], + 'line_one' => [ + 'label' => 'Direcci贸n', + ], + 'line_two' => [ + 'label' => 'L铆nea Dos', + ], + 'line_three' => [ + 'label' => 'L铆nea Tres', + ], + 'city' => [ + 'label' => 'Ciudad', + ], + 'country_id' => [ + 'label' => 'Pa铆s', + ], + 'state' => [ + 'label' => 'Estado/Provincia', + ], + 'postcode' => [ + 'label' => 'C贸digo postal', + ], + 'contact_email' => [ + 'label' => 'Correo de contacto', + ], + 'contact_phone' => [ + 'label' => 'Tel茅fono de contacto', + ], + ], + + 'form' => [ + 'title' => [ + 'label' => 'T铆tulo', + ], + 'first_name' => [ + 'label' => 'Nombre', + ], + 'last_name' => [ + 'label' => 'Apellido', + ], + 'company_name' => [ + 'label' => 'Nombre de la empresa', + ], + 'line_one' => [ + 'label' => 'L铆nea Uno', + ], + 'line_two' => [ + 'label' => 'L铆nea Dos', + ], + 'line_three' => [ + 'label' => 'L铆nea Tres', + ], + 'city' => [ + 'label' => 'Ciudad', + ], + 'country_id' => [ + 'label' => 'Pa铆s', + ], + 'state' => [ + 'label' => 'Estado/Provincia', + ], + 'postcode' => [ + 'label' => 'C贸digo postal', + ], + 'contact_email' => [ + 'label' => 'Correo de contacto', + ], + 'contact_phone' => [ + 'label' => 'Tel茅fono de contacto', + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/attribute.php b/packages/admin/resources/lang/es/attribute.php new file mode 100644 index 0000000000..5d6945f42f --- /dev/null +++ b/packages/admin/resources/lang/es/attribute.php @@ -0,0 +1,55 @@ + 'Atributo', + + 'plural_label' => 'Atributos', + + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'description' => [ + 'label' => 'Descripci贸n', + ], + 'handle' => [ + 'label' => 'Identificador', + ], + 'type' => [ + 'label' => 'Tipo', + ], + ], + + 'form' => [ + 'attributable_type' => [ + 'label' => 'Tipo', + ], + 'name' => [ + 'label' => 'Nombre', + ], + 'description' => [ + 'label' => 'Descripci贸n', + 'helper' => 'Se usa para mostrar el texto de ayuda debajo de la entrada', + ], + 'handle' => [ + 'label' => 'Identificador', + ], + 'searchable' => [ + 'label' => 'Buscable', + ], + 'filterable' => [ + 'label' => 'Filtrable', + ], + 'required' => [ + 'label' => 'Requerido', + ], + 'type' => [ + 'label' => 'Tipo', + ], + 'validation_rules' => [ + 'label' => 'Reglas de validaci贸n', + 'helper' => 'Reglas para el campo de atributo, ejemplo: min:1|max:10|...', + ], + ], +]; diff --git a/packages/admin/resources/lang/es/attributegroup.php b/packages/admin/resources/lang/es/attributegroup.php new file mode 100644 index 0000000000..785ad2fe8d --- /dev/null +++ b/packages/admin/resources/lang/es/attributegroup.php @@ -0,0 +1,46 @@ + 'Grupo de Atributos', + + 'plural_label' => 'Grupos de Atributos', + + 'table' => [ + 'attributable_type' => [ + 'label' => 'Tipo', + ], + 'name' => [ + 'label' => 'Nombre', + ], + 'handle' => [ + 'label' => 'Identificador', + ], + 'position' => [ + 'label' => 'Posici贸n', + ], + ], + + 'form' => [ + 'attributable_type' => [ + 'label' => 'Tipo', + ], + 'name' => [ + 'label' => 'Nombre', + ], + 'handle' => [ + 'label' => 'Identificador', + ], + 'position' => [ + 'label' => 'Posici贸n', + ], + ], + + 'action' => [ + 'delete' => [ + 'notification' => [ + 'error_protected' => 'Este grupo de atributos no puede ser eliminado porque tiene atributos asociados.', + ], + ], + ], +]; diff --git a/packages/admin/resources/lang/es/auth.php b/packages/admin/resources/lang/es/auth.php new file mode 100644 index 0000000000..5c73f08cce --- /dev/null +++ b/packages/admin/resources/lang/es/auth.php @@ -0,0 +1,32 @@ + 'Administrador', + 'roles.admin.description' => 'Administrador con acceso completo', + 'roles.staff.label' => 'Personal', + 'roles.staff.description' => 'Personal con acceso fundamental', + /** + * Permisos. + */ + 'permissions.settings.label' => 'Configuraciones', + 'permissions.settings.description' => 'Otorga acceso al 谩rea de configuraciones del centro', + 'permissions.settings:core.label' => 'Configuraciones Principales', + 'permissions.settings:core.description' => 'Acceso a configuraciones fundamentales de la tienda, como canales, idiomas, monedas, etc.', + 'permissions.settings:manage-staff.label' => 'Gestionar Personal', + 'permissions.settings:manage-staff.description' => 'Permite al miembro del personal editar a otros miembros del personal', + 'permissions.settings:manage-attributes.label' => 'Gestionar Atributos', + 'permissions.settings:manage-attributes.description' => 'Permite al miembro del personal editar y crear atributos adicionales', + 'permissions.catalog:manage-products.label' => 'Gestionar Productos', + 'permissions.catalog:manage-products.description' => 'Permite al miembro del personal editar productos, tipos de productos y marcas', + 'permissions.catalog:manage-collections.label' => 'Gestionar Colecciones', + 'permissions.catalog:manage-collections.description' => 'Permite al miembro del personal editar colecciones y sus grupos', + 'permissions.sales:manage-orders.label' => 'Gestionar Pedidos', + 'permissions.sales:manage-orders.description' => 'Permite al miembro del personal gestionar pedidos', + 'permissions.sales:manage-customers.label' => 'Gestionar Clientes', + 'permissions.sales:manage-customers.description' => 'Permite al miembro del personal gestionar clientes', + 'permissions.sales:manage-discounts.label' => 'Gestionar Descuentos', + 'permissions.sales:manage-discounts.description' => 'Permite al miembro del personal gestionar descuentos', +]; diff --git a/packages/admin/resources/lang/es/brand.php b/packages/admin/resources/lang/es/brand.php new file mode 100644 index 0000000000..72bfc11790 --- /dev/null +++ b/packages/admin/resources/lang/es/brand.php @@ -0,0 +1,72 @@ + 'Marca', + + 'plural_label' => 'Marcas', + + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'products_count' => [ + 'label' => 'N.潞 de productos', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + ], + + 'action' => [ + 'delete' => [ + 'notification' => [ + 'error_protected' => 'Esta marca no puede ser eliminada porque tiene productos asociados.', + ], + ], + ], + 'pages' => [ + 'products' => [ + 'label' => 'Productos', + 'actions' => [ + 'attach' => [ + 'label' => 'Asociar un producto', + 'form' => [ + 'record_id' => [ + 'label' => 'Producto', + ], + ], + 'notification' => [ + 'success' => 'Producto asociado a la marca', + ], + ], + 'detach' => [ + 'notification' => [ + 'success' => 'Producto desasociado.', + ], + ], + ], + ], + 'collections' => [ + 'label' => 'Colecciones', + 'table' => [ + 'header_actions' => [ + 'attach' => [ + 'record_select' => [ + 'placeholder' => 'Seleccionar una colecci贸n', + ], + ], + ], + ], + 'actions' => [ + 'attach' => [ + 'label' => 'Asociar una colecci贸n', + ], + ], + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/channel.php b/packages/admin/resources/lang/es/channel.php new file mode 100644 index 0000000000..1df11a96f2 --- /dev/null +++ b/packages/admin/resources/lang/es/channel.php @@ -0,0 +1,39 @@ + 'Canal', + + 'plural_label' => 'Canales', + + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'handle' => [ + 'label' => 'Identificador', + ], + 'url' => [ + 'label' => 'URL', + ], + 'default' => [ + 'label' => 'Predeterminado', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'handle' => [ + 'label' => 'Identificador', + ], + 'url' => [ + 'label' => 'URL', + ], + 'default' => [ + 'label' => 'Predeterminado', + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/collection.php b/packages/admin/resources/lang/es/collection.php new file mode 100644 index 0000000000..2714530c8c --- /dev/null +++ b/packages/admin/resources/lang/es/collection.php @@ -0,0 +1,45 @@ + 'Colecci贸n', + + 'plural_label' => 'Colecciones', + + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + ], + + 'pages' => [ + 'children' => [ + 'label' => 'Colecciones Hijas', + 'actions' => [ + 'create_child' => [ + 'label' => 'Crear Colecci贸n Hija', + ], + ], + 'table' => [ + 'children_count' => [ + 'label' => 'N.潞 Hijas', + ], + 'name' => [ + 'label' => 'Nombre', + ], + ], + ], + 'edit' => [ + 'label' => 'Informaci贸n B谩sica', + ], + 'products' => [ + 'label' => 'Productos', + 'actions' => [ + 'attach' => [ + 'label' => 'Asociar Producto', + ], + ], + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/collectiongroup.php b/packages/admin/resources/lang/es/collectiongroup.php new file mode 100644 index 0000000000..15fde58348 --- /dev/null +++ b/packages/admin/resources/lang/es/collectiongroup.php @@ -0,0 +1,37 @@ + 'Grupo de Colecciones', + + 'plural_label' => 'Grupos de Colecciones', + + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'handle' => [ + 'label' => 'Identificador', + ], + 'collections_count' => [ + 'label' => 'N.潞 Colecciones', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'handle' => [ + 'label' => 'Identificador', + ], + ], + + 'action' => [ + 'delete' => [ + 'notification' => [ + 'error_protected' => 'Este grupo de colecciones no puede ser eliminado porque tiene colecciones asociadas.', + ], + ], + ], +]; diff --git a/packages/admin/resources/lang/es/components.php b/packages/admin/resources/lang/es/components.php new file mode 100644 index 0000000000..cb56c5cf4b --- /dev/null +++ b/packages/admin/resources/lang/es/components.php @@ -0,0 +1,109 @@ + [ + 'notification' => [ + 'updated' => 'Etiquetas actualizadas', + ], + ], + + 'activity-log' => [ + 'input' => [ + 'placeholder' => 'Agregar un comentario', + ], + + 'action' => [ + 'add-comment' => 'Agregar Comentario', + ], + + 'system' => 'Sistema', + + 'partials' => [ + 'orders' => [ + 'order_created' => 'Pedido Creado', + + 'status_change' => 'Estado actualizado', + + 'capture' => 'Pago de :amount con tarjeta terminando en :last_four', + + 'authorized' => 'Autorizado de :amount con tarjeta terminando en :last_four', + + 'refund' => 'Reembolso de :amount con tarjeta terminando en :last_four', + + 'address' => ':type actualizado', + + 'billingAddress' => 'Direcci贸n de facturaci贸n', + + 'shippingAddress' => 'Direcci贸n de env铆o', + ], + + 'update' => [ + 'updated' => ':model actualizado', + ], + + 'create' => [ + 'created' => ':model creado', + ], + + 'tags' => [ + 'updated' => 'Etiquetas actualizadas', + 'added' => 'Agregado', + 'removed' => 'Eliminado', + ], + ], + + 'notification' => [ + 'comment_added' => 'Comentario agregado', + ], + ], + + 'forms' => [ + 'youtube' => [ + 'helperText' => 'Ingresa el ID del video de YouTube. ej. dQw4w9WgXcQ', + ], + ], + + 'collection-tree-view' => [ + 'actions' => [ + 'move' => [ + 'form' => [ + 'target_id' => [ + 'label' => 'Colecci贸n Padre', + ], + ], + ], + ], + 'notifications' => [ + 'collections-reordered' => [ + 'success' => 'Colecciones Reordenadas', + ], + 'node-expanded' => [ + 'danger' => 'No se pueden cargar las colecciones', + ], + 'delete' => [ + 'danger' => 'No se puede eliminar la colecci贸n', + ], + ], + ], + + 'product-options-list' => [ + 'add-option' => [ + 'label' => 'Agregar Opci贸n', + ], + 'delete-option' => [ + 'label' => 'Eliminar Opci贸n', + ], + 'remove-shared-option' => [ + 'label' => 'Eliminar Opci贸n Compartida', + ], + 'add-value' => [ + 'label' => 'Agregar Otro Valor', + ], + 'name' => [ + 'label' => 'Nombre', + ], + 'values' => [ + 'label' => 'Valores', + ], + ], +]; diff --git a/packages/admin/resources/lang/es/currency.php b/packages/admin/resources/lang/es/currency.php new file mode 100644 index 0000000000..653a95842b --- /dev/null +++ b/packages/admin/resources/lang/es/currency.php @@ -0,0 +1,51 @@ + 'Moneda', + + 'plural_label' => 'Monedas', + + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'code' => [ + 'label' => 'C贸digo', + ], + 'exchange_rate' => [ + 'label' => 'Tasa de Cambio', + ], + 'decimal_places' => [ + 'label' => 'Decimales', + ], + 'enabled' => [ + 'label' => 'Habilitado', + ], + 'default' => [ + 'label' => 'Predeterminado', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'code' => [ + 'label' => 'C贸digo', + ], + 'exchange_rate' => [ + 'label' => 'Tasa de Cambio', + ], + 'decimal_places' => [ + 'label' => 'Decimales', + ], + 'enabled' => [ + 'label' => 'Habilitado', + ], + 'default' => [ + 'label' => 'Predeterminado', + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/customer.php b/packages/admin/resources/lang/es/customer.php new file mode 100644 index 0000000000..341ac80497 --- /dev/null +++ b/packages/admin/resources/lang/es/customer.php @@ -0,0 +1,63 @@ + 'Cliente', + + 'plural_label' => 'Clientes', + + 'table' => [ + 'full_name' => [ + 'label' => 'Nombre', + ], + 'first_name' => [ + 'label' => 'Nombre', + ], + 'last_name' => [ + 'label' => 'Apellido', + ], + 'title' => [ + 'label' => 'T铆tulo', + ], + 'company_name' => [ + 'label' => 'Nombre de la Empresa', + ], + 'vat_no' => [ + 'label' => 'NIF', + ], + 'account_reference' => [ + 'label' => 'Referencia de Cuenta', + ], + 'new' => [ + 'label' => 'Nuevo', + ], + 'returning' => [ + 'label' => 'Recurrente', + ], + ], + + 'form' => [ + 'title' => [ + 'label' => 'T铆tulo', + ], + 'first_name' => [ + 'label' => 'Nombre', + ], + 'last_name' => [ + 'label' => 'Apellido', + ], + 'company_name' => [ + 'label' => 'Nombre de la Empresa', + ], + 'account_ref' => [ + 'label' => 'Referencia de Cuenta', + ], + 'vat_no' => [ + 'label' => 'NIF', + ], + 'customer_groups' => [ + 'label' => 'Grupos de Clientes', + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/customergroup.php b/packages/admin/resources/lang/es/customergroup.php new file mode 100644 index 0000000000..d8d5c5e0e9 --- /dev/null +++ b/packages/admin/resources/lang/es/customergroup.php @@ -0,0 +1,40 @@ + 'Grupo de Clientes', + + 'plural_label' => 'Grupos de Clientes', + + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'handle' => [ + 'label' => 'Identificador', + ], + 'default' => [ + 'label' => 'Predeterminado', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'handle' => [ + 'label' => 'Identificador', + ], + 'default' => [ + 'label' => 'Predeterminado', + ], + ], + + 'action' => [ + 'delete' => [ + 'notification' => [ + 'error_protected' => 'Este grupo de clientes no puede ser eliminado ya que hay clientes asociados.', + ], + ], + ], +]; diff --git a/packages/admin/resources/lang/es/discount.php b/packages/admin/resources/lang/es/discount.php new file mode 100644 index 0000000000..4f9e051c5f --- /dev/null +++ b/packages/admin/resources/lang/es/discount.php @@ -0,0 +1,324 @@ + 'Descuentos', + 'label' => 'Descuento', + 'form' => [ + 'conditions' => [ + 'heading' => 'Condiciones', + ], + 'buy_x_get_y' => [ + 'heading' => 'Compra X Obt茅n Y', + ], + 'amount_off' => [ + 'heading' => 'Cantidad Descontada', + ], + 'name' => [ + 'label' => 'Nombre', + ], + 'handle' => [ + 'label' => 'Identificador', + ], + 'starts_at' => [ + 'label' => 'Fecha de Inicio', + ], + 'ends_at' => [ + 'label' => 'Fecha de Fin', + ], + 'priority' => [ + 'label' => 'Prioridad', + 'helper_text' => 'Los descuentos con mayor prioridad se aplicar谩n primero.', + 'options' => [ + 'low' => [ + 'label' => 'Baja', + ], + 'medium' => [ + 'label' => 'Media', + ], + 'high' => [ + 'label' => 'Alta', + ], + ], + ], + 'stop' => [ + 'label' => 'Detener otros descuentos despu茅s de este', + ], + 'coupon' => [ + 'label' => 'Cup贸n', + 'helper_text' => 'Introduce el cup贸n necesario para que se aplique el descuento, si se deja en blanco se aplicar谩 autom谩ticamente.', + ], + 'max_uses' => [ + 'label' => 'M谩ximo de usos', + 'helper_text' => 'Deja en blanco para usos ilimitados.', + ], + 'max_uses_per_user' => [ + 'label' => 'M谩ximo de usos por usuario', + 'helper_text' => 'Deja en blanco para usos ilimitados.', + ], + 'minimum_cart_amount' => [ + 'label' => 'Monto M铆nimo del Carrito', + ], + 'min_qty' => [ + 'label' => 'Cantidad de Producto', + 'helper_text' => 'Establece cu谩ntos productos calificativos son necesarios para que se aplique el descuento.', + ], + 'reward_qty' => [ + 'label' => 'No. de art铆culos gratuitos', + 'helper_text' => 'Cu谩ntos de cada art铆culo tienen descuento.', + ], + 'max_reward_qty' => [ + 'label' => 'Cantidad m谩xima de recompensa', + 'helper_text' => 'La cantidad m谩xima de productos que se pueden descontar, independientemente de los criterios.', + ], + 'automatic_rewards' => [ + 'label' => 'Agregar recompensas autom谩ticamente', + 'helper_text' => 'Activa para agregar productos de recompensa cuando no est茅n presentes en el carrito.', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'status' => [ + 'label' => 'Estado', + \Lunar\Models\Discount::ACTIVE => [ + 'label' => 'Activo', + ], + \Lunar\Models\Discount::PENDING => [ + 'label' => 'Pendiente', + ], + \Lunar\Models\Discount::EXPIRED => [ + 'label' => 'Expirado', + ], + \Lunar\Models\Discount::SCHEDULED => [ + 'label' => 'Programado', + ], + ], + 'type' => [ + 'label' => 'Tipo', + ], + 'starts_at' => [ + 'label' => 'Fecha de Inicio', + ], + 'ends_at' => [ + 'label' => 'Fecha de Fin', + ], + ], + 'pages' => [ + 'availability' => [ + 'label' => 'Disponibilidad', + ], + 'limitations' => [ + 'label' => 'Limitaciones', + ], + ], + 'relationmanagers' => [ + 'collections' => [ + 'title' => 'Colecciones', + 'description' => 'Selecciona a qu茅 colecciones se debe limitar este descuento.', + 'actions' => [ + 'attach' => [ + 'label' => 'Adjuntar Colecci贸n', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'type' => [ + 'label' => 'Tipo', + 'limitation' => [ + 'label' => 'Limitaci贸n', + ], + 'exclusion' => [ + 'label' => 'Exclusi贸n', + ], + ], + ], + 'form' => [ + 'type' => [ + 'options' => [ + 'limitation' => [ + 'label' => 'Limitaci贸n', + ], + 'exclusion' => [ + 'label' => 'Exclusi贸n', + ], + ], + ], + ], + ], + 'brands' => [ + 'title' => 'Marcas', + 'description' => 'Selecciona a qu茅 marcas se debe limitar este descuento.', + 'actions' => [ + 'attach' => [ + 'label' => 'Adjuntar Marca', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'type' => [ + 'label' => 'Tipo', + 'limitation' => [ + 'label' => 'Limitaci贸n', + ], + 'exclusion' => [ + 'label' => 'Exclusi贸n', + ], + ], + ], + 'form' => [ + 'type' => [ + 'options' => [ + 'limitation' => [ + 'label' => 'Limitaci贸n', + ], + 'exclusion' => [ + 'label' => 'Exclusi贸n', + ], + ], + ], + ], + ], + 'products' => [ + 'title' => 'Productos', + 'description' => 'Selecciona a qu茅 productos se debe limitar este descuento.', + 'actions' => [ + 'attach' => [ + 'label' => 'Agregar Producto', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'type' => [ + 'label' => 'Tipo', + 'limitation' => [ + 'label' => 'Limitaci贸n', + ], + 'exclusion' => [ + 'label' => 'Exclusi贸n', + ], + ], + ], + 'form' => [ + 'type' => [ + 'options' => [ + 'limitation' => [ + 'label' => 'Limitaci贸n', + ], + 'exclusion' => [ + 'label' => 'Exclusi贸n', + ], + ], + ], + ], + ], + 'rewards' => [ + 'title' => 'Recompensas de Productos', + 'description' => 'Selecciona qu茅 productos ser谩n descontados si existen en el carrito y se cumplen las condiciones anteriores.', + 'actions' => [ + 'attach' => [ + 'label' => 'Agregar Producto', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'type' => [ + 'label' => 'Tipo', + 'limitation' => [ + 'label' => 'Limitaci贸n', + ], + 'exclusion' => [ + 'label' => 'Exclusi贸n', + ], + ], + ], + 'form' => [ + 'type' => [ + 'options' => [ + 'limitation' => [ + 'label' => 'Limitaci贸n', + ], + 'exclusion' => [ + 'label' => 'Exclusi贸n', + ], + ], + ], + ], + ], + 'conditions' => [ + 'title' => 'Condiciones de Producto', + 'description' => 'Selecciona los productos necesarios para que se aplique el descuento.', + 'actions' => [ + 'attach' => [ + 'label' => 'Agregar Producto', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'type' => [ + 'label' => 'Tipo', + 'limitation' => [ + 'label' => 'Limitaci贸n', + ], + 'exclusion' => [ + 'label' => 'Exclusi贸n', + ], + ], + ], + 'form' => [ + 'type' => [ + 'options' => [ + 'limitation' => [ + 'label' => 'Limitaci贸n', + ], + 'exclusion' => [ + 'label' => 'Exclusi贸n', + ], + ], + ], + ], + ], + 'productvariants' => [ + 'title' => 'Variantes de Productos', + 'description' => 'Selecciona qu茅 variantes de productos se debe limitar a este descuento.', + 'actions' => [ + 'attach' => [ + 'label' => 'Agregar Variante de Producto', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'sku' => [ + 'label' => 'SKU', + ], + 'values' => [ + 'label' => 'Opci贸n(es)', + ], + ], + 'form' => [ + 'type' => [ + 'options' => [ + 'limitation' => [ + 'label' => 'Limitaci贸n', + ], + 'exclusion' => [ + 'label' => 'Exclusi贸n', + ], + ], + ], + ], + ], + ], +]; diff --git a/packages/admin/resources/lang/es/fieldtypes.php b/packages/admin/resources/lang/es/fieldtypes.php new file mode 100644 index 0000000000..021935d74c --- /dev/null +++ b/packages/admin/resources/lang/es/fieldtypes.php @@ -0,0 +1,72 @@ + [ + 'label' => 'Desplegable', + 'form' => [ + 'lookups' => [ + 'label' => 'B煤squedas', + 'key_label' => 'Etiqueta', + 'value_label' => 'Valor', + ], + ], + ], + 'listfield' => [ + 'label' => 'Campo de Lista', + ], + 'text' => [ + 'label' => 'Texto', + 'form' => [ + 'richtext' => [ + 'label' => 'Texto Enriquecido', + ], + ], + ], + 'translatedtext' => [ + 'label' => 'Texto Traducido', + 'form' => [ + 'richtext' => [ + 'label' => 'Texto Enriquecido', + ], + 'locales' => 'Locales', + ], + ], + 'toggle' => [ + 'label' => 'Activar/Desactivar', + ], + 'youtube' => [ + 'label' => 'YouTube', + ], + 'vimeo' => [ + 'label' => 'Vimeo', + ], + 'number' => [ + 'label' => 'N煤mero', + 'form' => [ + 'min' => [ + 'label' => 'M铆n.', + ], + 'max' => [ + 'label' => 'M谩x.', + ], + ], + ], + 'file' => [ + 'label' => 'Archivo', + 'form' => [ + 'file_types' => [ + 'label' => 'Tipos de Archivo Permitidos', + 'placeholder' => 'Nuevo MIME', + ], + 'multiple' => [ + 'label' => 'Permitir M煤ltiples Archivos', + ], + 'min_files' => [ + 'label' => 'M铆n. Archivos', + ], + 'max_files' => [ + 'label' => 'M谩x. Archivos', + ], + ], + ], +]; diff --git a/packages/admin/resources/lang/es/global.php b/packages/admin/resources/lang/es/global.php new file mode 100644 index 0000000000..240c2cbecb --- /dev/null +++ b/packages/admin/resources/lang/es/global.php @@ -0,0 +1,12 @@ + [ + 'catalog' => 'Cat谩logo', + 'sales' => 'Ventas', + 'reports' => 'Informes', + 'settings' => 'Configuraciones', + ], + +]; diff --git a/packages/admin/resources/lang/es/language.php b/packages/admin/resources/lang/es/language.php new file mode 100644 index 0000000000..86a4129959 --- /dev/null +++ b/packages/admin/resources/lang/es/language.php @@ -0,0 +1,33 @@ + 'Idioma', + + 'plural_label' => 'Idiomas', + + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'code' => [ + 'label' => 'C贸digo', + ], + 'default' => [ + 'label' => 'Predeterminado', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'code' => [ + 'label' => 'C贸digo', + ], + 'default' => [ + 'label' => 'Predeterminado', + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/order.php b/packages/admin/resources/lang/es/order.php new file mode 100644 index 0000000000..2aee39a6da --- /dev/null +++ b/packages/admin/resources/lang/es/order.php @@ -0,0 +1,292 @@ + 'Pedido', + + 'plural_label' => 'Pedidos', + + 'breadcrumb' => [ + 'manage' => 'Gestionar', + ], + + 'transactions' => [ + 'capture' => 'Capturado', + 'intent' => 'Intenci贸n', + 'refund' => 'Reembolsado', + 'failed' => 'Fallido', + ], + + 'table' => [ + 'status' => [ + 'label' => 'Estado', + ], + 'reference' => [ + 'label' => 'Referencia', + ], + 'customer_reference' => [ + 'label' => 'Referencia del Cliente', + ], + 'customer' => [ + 'label' => 'Cliente', + ], + 'tags' => [ + 'label' => 'Etiquetas', + ], + 'postcode' => [ + 'label' => 'C贸digo Postal', + ], + 'email' => [ + 'label' => 'Correo Electr贸nico', + 'copy_message' => 'Direcci贸n de correo electr贸nico copiada', + ], + 'phone' => [ + 'label' => 'Tel茅fono', + ], + 'total' => [ + 'label' => 'Total', + ], + 'date' => [ + 'label' => 'Fecha', + ], + 'new_customer' => [ + 'label' => 'Tipo de Cliente', + ], + 'placed_after' => [ + 'label' => 'Realizado despu茅s de', + ], + 'placed_before' => [ + 'label' => 'Realizado antes de', + ], + ], + + 'form' => [ + 'address' => [ + 'first_name' => [ + 'label' => 'Nombre', + ], + 'last_name' => [ + 'label' => 'Apellido', + ], + 'line_one' => [ + 'label' => 'Direcci贸n L铆nea 1', + ], + 'line_two' => [ + 'label' => 'Direcci贸n L铆nea 2', + ], + 'line_three' => [ + 'label' => 'Direcci贸n L铆nea 3', + ], + 'company_name' => [ + 'label' => 'Nombre de la Empresa', + ], + 'contact_phone' => [ + 'label' => 'Tel茅fono', + ], + 'contact_email' => [ + 'label' => 'Correo Electr贸nico', + ], + 'city' => [ + 'label' => 'Ciudad', + ], + 'state' => [ + 'label' => 'Estado / Provincia', + ], + 'postcode' => [ + 'label' => 'C贸digo Postal', + ], + 'country_id' => [ + 'label' => 'Pa铆s', + ], + ], + + 'reference' => [ + 'label' => 'Referencia', + ], + 'status' => [ + 'label' => 'Estado', + ], + 'transaction' => [ + 'label' => 'Transacci贸n', + ], + 'amount' => [ + 'label' => 'Cantidad', + + 'hint' => [ + 'less_than_total' => 'Est谩 a punto de capturar un monto menor al valor total de la transacci贸n', + ], + ], + + 'notes' => [ + 'label' => 'Notas', + ], + 'confirm' => [ + 'label' => 'Confirmar', + + 'alert' => 'Se requiere confirmaci贸n', + + 'hint' => [ + 'capture' => 'Por favor confirme que desea capturar este pago', + 'refund' => 'Por favor confirme que desea reembolsar esta cantidad.', + ], + ], + ], + + 'infolist' => [ + 'notes' => [ + 'label' => 'Notas', + 'placeholder' => 'Sin notas en este pedido', + ], + 'delivery_instructions' => [ + 'label' => 'Instrucciones de Entrega', + ], + 'shipping_total' => [ + 'label' => 'Total de Env铆o', + ], + 'paid' => [ + 'label' => 'Pagado', + ], + 'refund' => [ + 'label' => 'Reembolso', + ], + 'unit_price' => [ + 'label' => 'Precio Unitario', + ], + 'quantity' => [ + 'label' => 'Cantidad', + ], + 'sub_total' => [ + 'label' => 'Subtotal', + ], + 'discount_total' => [ + 'label' => 'Total de Descuentos', + ], + 'total' => [ + 'label' => 'Total', + ], + 'current_stock_level' => [ + 'message' => 'Nivel de Stock Actual: :count', + ], + 'purchase_stock_level' => [ + 'message' => 'al momento de hacer el pedido: :count', + ], + 'status' => [ + 'label' => 'Estado', + ], + 'reference' => [ + 'label' => 'Referencia', + ], + 'customer_reference' => [ + 'label' => 'Referencia del Cliente', + ], + 'channel' => [ + 'label' => 'Canal', + ], + 'date_created' => [ + 'label' => 'Fecha de Creaci贸n', + ], + 'date_placed' => [ + 'label' => 'Fecha de Pedido', + ], + 'new_returning' => [ + 'label' => 'Nuevo / Recurrente', + ], + 'new_customer' => [ + 'label' => 'Nuevo Cliente', + ], + 'returning_customer' => [ + 'label' => 'Cliente Recurrente', + ], + 'shipping_address' => [ + 'label' => 'Direcci贸n de Env铆o', + ], + 'billing_address' => [ + 'label' => 'Direcci贸n de Facturaci贸n', + ], + 'address_not_set' => [ + 'label' => 'No se ha establecido direcci贸n', + ], + 'billing_matches_shipping' => [ + 'label' => 'Igual que la direcci贸n de env铆o', + ], + 'additional_info' => [ + 'label' => 'Informaci贸n Adicional', + ], + 'no_additional_info' => [ + 'label' => 'Sin Informaci贸n Adicional', + ], + 'tags' => [ + 'label' => 'Etiquetas', + ], + 'timeline' => [ + 'label' => 'Cronolog铆a', + ], + 'transactions' => [ + 'label' => 'Transacciones', + 'placeholder' => 'Sin transacciones', + ], + 'alert' => [ + 'requires_capture' => 'Este pedido a煤n requiere que se capture el pago.', + 'partially_refunded' => 'Este pedido ha sido parcialmente reembolsado.', + 'refunded' => 'Este pedido ha sido reembolsado.', + ], + ], + + 'action' => [ + 'bulk_update_status' => [ + 'label' => 'Actualizar Estado', + 'notification' => 'Estado de pedidos actualizado', + ], + 'update_status' => [ + 'new_status' => [ + 'label' => 'Nuevo estado', + ], + 'additional_content' => [ + 'label' => 'Contenido adicional', + ], + 'additional_email_recipient' => [ + 'label' => 'Destinatario adicional de correo electr贸nico', + 'placeholder' => 'opcional', + ], + ], + 'download_order_pdf' => [ + 'label' => 'Descargar PDF', + 'notification' => 'Descargando PDF del pedido', + ], + 'edit_address' => [ + 'label' => 'Editar', + + 'notification' => [ + 'error' => 'Error', + + 'billing_address' => [ + 'saved' => 'Direcci贸n de facturaci贸n guardada', + ], + + 'shipping_address' => [ + 'saved' => 'Direcci贸n de env铆o guardada', + ], + ], + ], + 'edit_tags' => [ + 'label' => 'Editar', + ], + 'capture_payment' => [ + 'label' => 'Capturar Pago', + + 'notification' => [ + 'error' => 'Hubo un problema con la captura', + 'success' => 'Captura exitosa', + ], + ], + 'refund_payment' => [ + 'label' => 'Reembolsar', + + 'notification' => [ + 'error' => 'Hubo un problema con el reembolso', + 'success' => 'Reembolso exitoso', + ], + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/product.php b/packages/admin/resources/lang/es/product.php new file mode 100644 index 0000000000..f17797c69c --- /dev/null +++ b/packages/admin/resources/lang/es/product.php @@ -0,0 +1,121 @@ + 'Producto', + + 'plural_label' => 'Productos', + + 'status' => [ + 'unpublished' => [ + 'content' => 'Actualmente en estado de borrador, este producto est谩 oculto en todos los canales y grupos de clientes.', + ], + 'availability' => [ + 'customer_groups' => 'Este producto actualmente no est谩 disponible para todos los grupos de clientes.', + 'channels' => 'Este producto actualmente no est谩 disponible para todos los canales.', + ], + ], + + 'table' => [ + 'status' => [ + 'label' => 'Estado', + 'states' => [ + 'deleted' => 'Eliminado', + 'draft' => 'Borrador', + 'published' => 'Publicado', + ], + ], + 'name' => [ + 'label' => 'Nombre', + ], + 'brand' => [ + 'label' => 'Marca', + ], + 'sku' => [ + 'label' => 'SKU', + ], + 'stock' => [ + 'label' => 'Stock', + ], + 'producttype' => [ + 'label' => 'Tipo de Producto', + ], + ], + + 'actions' => [ + 'edit_status' => [ + 'label' => 'Actualizar Estado', + 'heading' => 'Actualizar Estado', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'brand' => [ + 'label' => 'Marca', + ], + 'sku' => [ + 'label' => 'SKU', + ], + 'producttype' => [ + 'label' => 'Tipo de Producto', + ], + 'status' => [ + 'label' => 'Estado', + 'options' => [ + 'published' => [ + 'label' => 'Publicado', + 'description' => 'Este producto estar谩 disponible en todos los grupos de clientes y canales habilitados', + ], + 'draft' => [ + 'label' => 'Borrador', + 'description' => 'Este producto estar谩 oculto en todos los canales y grupos de clientes', + ], + ], + ], + 'tags' => [ + 'label' => 'Etiquetas', + ], + 'collections' => [ + 'label' => 'Colecciones', + ], + ], + + 'pages' => [ + 'availability' => [ + 'label' => 'Disponibilidad', + ], + 'identifiers' => [ + 'label' => 'Identificadores del Producto', + ], + 'inventory' => [ + 'label' => 'Inventario', + ], + 'pricing' => [ + 'form' => [ + 'tax_class_id' => [ + 'label' => 'Clase de Impuesto', + ], + 'tax_ref' => [ + 'label' => 'Referencia de Impuesto', + 'helper_text' => 'Opcional, para integraci贸n con sistemas de terceros.', + ], + ], + ], + 'shipping' => [ + 'label' => 'Env铆o', + ], + 'variants' => [ + 'label' => 'Variantes', + ], + 'collections' => [ + 'label' => 'Colecciones', + ], + 'associations' => [ + 'label' => 'Asociaciones de Productos', + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/productoption.php b/packages/admin/resources/lang/es/productoption.php new file mode 100644 index 0000000000..5515f234e3 --- /dev/null +++ b/packages/admin/resources/lang/es/productoption.php @@ -0,0 +1,124 @@ + 'Opci贸n de Producto', + + 'plural_label' => 'Opciones de Producto', + + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'label' => [ + 'label' => 'Etiqueta', + ], + 'handle' => [ + 'label' => 'Identificador', + ], + 'shared' => [ + 'label' => 'Compartido', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'label' => [ + 'label' => 'Etiqueta', + ], + 'handle' => [ + 'label' => 'Identificador', + ], + ], + + 'widgets' => [ + 'product-options' => [ + 'notifications' => [ + 'save-variants' => [ + 'success' => [ + 'title' => 'Variantes de Producto Guardadas', + ], + ], + ], + 'actions' => [ + 'cancel' => [ + 'label' => 'Cancelar', + ], + 'save-options' => [ + 'label' => 'Guardar Opciones', + ], + 'add-shared-option' => [ + 'label' => 'Agregar Opci贸n Compartida', + 'form' => [ + 'product_option' => [ + 'label' => 'Opci贸n de Producto', + ], + 'no_shared_components' => [ + 'label' => 'No hay opciones compartidas disponibles.', + ], + ], + ], + 'add-restricted-option' => [ + 'label' => 'Agregar Opci贸n', + ], + ], + 'options-list' => [ + 'empty' => [ + 'heading' => 'No hay opciones de producto configuradas', + 'description' => 'Agrega una opci贸n de producto compartida o restringida para comenzar a generar algunas variantes.', + ], + ], + 'options-table' => [ + 'title' => 'Opciones de Producto', + 'configure-options' => [ + 'label' => 'Configurar Opciones', + ], + 'table' => [ + 'option' => [ + 'label' => 'Opci贸n', + ], + 'values' => [ + 'label' => 'Valores', + ], + ], + ], + 'variants-table' => [ + 'title' => 'Variantes de Producto', + 'actions' => [ + 'create' => [ + 'label' => 'Crear Variante', + ], + 'edit' => [ + 'label' => 'Editar', + ], + 'delete' => [ + 'label' => 'Eliminar', + ], + ], + 'empty' => [ + 'heading' => 'No Hay Variantes Configuradas', + ], + 'table' => [ + 'new' => [ + 'label' => 'NUEVO', + ], + 'option' => [ + 'label' => 'Opci贸n', + ], + 'sku' => [ + 'label' => 'SKU', + ], + 'price' => [ + 'label' => 'Precio', + ], + 'stock' => [ + 'label' => 'Stock', + ], + ], + ], + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/producttype.php b/packages/admin/resources/lang/es/producttype.php new file mode 100644 index 0000000000..6fc2112696 --- /dev/null +++ b/packages/admin/resources/lang/es/producttype.php @@ -0,0 +1,52 @@ + 'Tipo de Producto', + + 'plural_label' => 'Tipos de Producto', + + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'products_count' => [ + 'label' => 'Cantidad de Productos', + ], + 'product_attributes_count' => [ + 'label' => 'Atributos de Producto', + ], + 'variant_attributes_count' => [ + 'label' => 'Atributos de Variante', + ], + ], + + 'tabs' => [ + 'product_attributes' => [ + 'label' => 'Atributos de Producto', + ], + 'variant_attributes' => [ + 'label' => 'Atributos de Variante', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + ], + + 'attributes' => [ + 'no_groups' => 'No hay grupos de atributos disponibles.', + 'no_attributes' => 'No hay atributos disponibles.', + ], + + 'action' => [ + 'delete' => [ + 'notification' => [ + 'error_protected' => 'Este tipo de producto no puede ser eliminado ya que hay productos asociados.', + ], + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/productvariant.php b/packages/admin/resources/lang/es/productvariant.php new file mode 100644 index 0000000000..9b030a6e51 --- /dev/null +++ b/packages/admin/resources/lang/es/productvariant.php @@ -0,0 +1,105 @@ + 'Variante de Producto', + 'plural_label' => 'Variantes de Producto', + 'pages' => [ + 'edit' => [ + 'title' => 'Informaci贸n B谩sica', + ], + 'media' => [ + 'title' => 'Medios', + 'form' => [ + 'no_selection' => [ + 'label' => 'Actualmente no tienes una imagen seleccionada para esta variante.', + ], + 'no_media_available' => [ + 'label' => 'Actualmente no hay medios disponibles para este producto.', + ], + 'images' => [ + 'label' => 'Imagen Principal', + 'helper_text' => 'Selecciona la imagen del producto que representa esta variante.', + ], + ], + ], + 'identifiers' => [ + 'title' => 'Identificadores', + ], + 'inventory' => [ + 'title' => 'Inventario', + ], + 'shipping' => [ + 'title' => 'Env铆o', + ], + ], + 'form' => [ + 'sku' => [ + 'label' => 'SKU', + ], + 'gtin' => [ + 'label' => 'N煤mero Global de Art铆culo Comercial (GTIN)', + ], + 'mpn' => [ + 'label' => 'N煤mero de Parte del Fabricante (MPN)', + ], + 'ean' => [ + 'label' => 'UPC/EAN', + ], + 'stock' => [ + 'label' => 'En Stock', + ], + 'backorder' => [ + 'label' => 'En Pedido Pendiente', + ], + 'purchasable' => [ + 'label' => 'Comprabilidad', + 'options' => [ + 'always' => 'Siempre', + 'in_stock' => 'En Stock', + 'in_stock_or_on_backorder' => 'En Stock o en Pedido Pendiente', + ], + ], + 'unit_quantity' => [ + 'label' => 'Cantidad por Unidad', + 'helper_text' => 'Cu谩ntos art铆culos individuales componen 1 unidad.', + ], + 'min_quantity' => [ + 'label' => 'Cantidad M铆nima', + 'helper_text' => 'La cantidad m铆nima de una variante de producto que se puede comprar en una sola compra.', + ], + 'quantity_increment' => [ + 'label' => 'Incremento de Cantidad', + 'helper_text' => 'La variante de producto debe comprarse en m煤ltiplos de esta cantidad.', + ], + 'tax_class_id' => [ + 'label' => 'Clase Impositiva', + ], + 'shippable' => [ + 'label' => 'Enviable', + ], + 'length_value' => [ + 'label' => 'Longitud', + ], + 'length_unit' => [ + 'label' => 'Unidad de Longitud', + ], + 'width_value' => [ + 'label' => 'Anchura', + ], + 'width_unit' => [ + 'label' => 'Unidad de Anchura', + ], + 'height_value' => [ + 'label' => 'Altura', + ], + 'height_unit' => [ + 'label' => 'Unidad de Altura', + ], + 'weight_value' => [ + 'label' => 'Peso', + ], + 'weight_unit' => [ + 'label' => 'Unidad de Peso', + ], + ], +]; diff --git a/packages/admin/resources/lang/es/relationmanagers.php b/packages/admin/resources/lang/es/relationmanagers.php new file mode 100644 index 0000000000..9342e63036 --- /dev/null +++ b/packages/admin/resources/lang/es/relationmanagers.php @@ -0,0 +1,262 @@ + [ + 'actions' => [ + 'attach' => [ + 'label' => 'Adjuntar Grupo de Clientes', + ], + ], + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'enabled' => [ + 'label' => 'Habilitado', + ], + 'starts_at' => [ + 'label' => 'Fecha de Inicio', + ], + 'ends_at' => [ + 'label' => 'Fecha de Finalizaci贸n', + ], + 'visible' => [ + 'label' => 'Visible', + ], + 'purchasable' => [ + 'label' => 'Comprable', + ], + ], + 'table' => [ + 'description' => 'Asocia grupos de clientes a este :type para determinar su disponibilidad.', + 'name' => [ + 'label' => 'Nombre', + ], + 'enabled' => [ + 'label' => 'Habilitado', + ], + 'starts_at' => [ + 'label' => 'Fecha de Inicio', + ], + 'ends_at' => [ + 'label' => 'Fecha de Finalizaci贸n', + ], + 'visible' => [ + 'label' => 'Visible', + ], + 'purchasable' => [ + 'label' => 'Comprable', + ], + ], + ], + 'channels' => [ + 'actions' => [ + 'attach' => [ + 'label' => 'Programar otro Canal', + ], + ], + 'form' => [ + 'enabled' => [ + 'label' => 'Habilitado', + 'helper_text_false' => 'Este canal no estar谩 habilitado incluso si hay una fecha de inicio presente.', + ], + 'starts_at' => [ + 'label' => 'Fecha de Inicio', + 'helper_text' => 'Deja en blanco para estar disponible desde cualquier fecha.', + ], + 'ends_at' => [ + 'label' => 'Fecha de Finalizaci贸n', + 'helper_text' => 'Deja en blanco para estar disponible indefinidamente.', + ], + ], + 'table' => [ + 'description' => 'Determina qu茅 canales est谩n habilitados y programa la disponibilidad.', + 'name' => [ + 'label' => 'Nombre', + ], + 'enabled' => [ + 'label' => 'Habilitado', + ], + 'starts_at' => [ + 'label' => 'Fecha de Inicio', + ], + 'ends_at' => [ + 'label' => 'Fecha de Finalizaci贸n', + ], + ], + ], + 'medias' => [ + 'title' => 'Medios', + 'title_plural' => 'Medios', + 'actions' => [ + 'create' => [ + 'label' => 'Crear Medio', + ], + 'view' => [ + 'label' => 'Ver', + ], + ], + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'media' => [ + 'label' => 'Imagen', + ], + 'primary' => [ + 'label' => 'Primario', + ], + ], + 'table' => [ + 'image' => [ + 'label' => 'Imagen', + ], + 'file' => [ + 'label' => 'Archivo', + ], + 'name' => [ + 'label' => 'Nombre', + ], + 'primary' => [ + 'label' => 'Primario', + ], + ], + ], + 'urls' => [ + 'title' => 'URL', + 'title_plural' => 'URLs', + 'actions' => [ + 'create' => [ + 'label' => 'Crear URL', + ], + ], + 'filters' => [ + 'language_id' => [ + 'label' => 'Idioma', + ], + ], + 'form' => [ + 'slug' => [ + 'label' => 'Slug', + ], + 'default' => [ + 'label' => 'Predeterminado', + ], + 'language' => [ + 'label' => 'Idioma', + ], + ], + 'table' => [ + 'slug' => [ + 'label' => 'Slug', + ], + 'default' => [ + 'label' => 'Predeterminado', + ], + 'language' => [ + 'label' => 'Idioma', + ], + ], + ], + 'customer_group_pricing' => [ + 'title' => 'Precios de Grupo de Clientes', + 'title_plural' => 'Precios de Grupo de Clientes', + 'table' => [ + 'heading' => 'Precios de Grupo de Clientes', + 'description' => 'Asocia precios a grupos de clientes para determinar el precio del producto.', + 'empty_state' => [ + 'label' => 'No existen precios de grupos de clientes.', + 'description' => 'Crea un precio de grupo de clientes para comenzar.', + ], + 'actions' => [ + 'create' => [ + 'label' => 'Agregar Precio de Grupo de Clientes', + 'modal' => [ + 'heading' => 'Crear Precio de Grupo de Clientes', + ], + ], + ], + ], + ], + 'pricing' => [ + 'title' => 'Precios', + 'title_plural' => 'Precios', + 'tab_name' => 'Descuentos por Cantidad', + 'table' => [ + 'heading' => 'Descuentos por Cantidad', + 'description' => 'Reduce el precio cuando un cliente compra en mayores cantidades.', + 'empty_state' => [ + 'label' => 'No existen descuentos por cantidad.', + ], + 'actions' => [ + 'create' => [ + 'label' => 'Agregar Descuento por Cantidad', + ], + ], + 'price' => [ + 'label' => 'Precio', + ], + 'customer_group' => [ + 'label' => 'Grupo de Clientes', + 'placeholder' => 'Todos los Grupos de Clientes', + ], + 'min_quantity' => [ + 'label' => 'Cantidad M铆nima', + ], + 'currency' => [ + 'label' => 'Moneda', + ], + ], + 'form' => [ + 'price' => [ + 'label' => 'Precio', + 'helper_text' => 'El precio de compra, antes de descuentos.', + ], + 'customer_group_id' => [ + 'label' => 'Grupo de Clientes', + 'placeholder' => 'Todos los Grupos de Clientes', + 'helper_text' => 'Selecciona a qu茅 grupo de clientes aplicar este precio.', + ], + 'min_quantity' => [ + 'label' => 'Cantidad M铆nima', + 'helper_text' => 'Selecciona la cantidad m铆nima para la que estar谩 disponible este precio.', + 'validation' => [ + 'unique' => 'El Grupo de Clientes y la Cantidad M铆nima deben ser 煤nicos.', + ], + ], + 'currency_id' => [ + 'label' => 'Moneda', + 'helper_text' => 'Selecciona la moneda para este precio.', + ], + 'compare_price' => [ + 'label' => 'Precio Comparativo', + 'helper_text' => 'El precio original o RRP, para comparaci贸n con su precio de compra.', + ], + 'basePrices' => [ + 'title' => 'Precios', + 'form' => [ + 'price' => [ + 'label' => 'Precio', + 'helper_text' => 'El precio de compra, antes de descuentos.', + ], + 'compare_price' => [ + 'label' => 'Precio Comparativo', + 'helper_text' => 'El precio original o RRP, para comparaci贸n con su precio de compra.', + ], + ], + 'tooltip' => 'Generado autom谩ticamente en base a las tasas de cambio de divisas.', + ], + ], + ], + 'tax_rate_amounts' => [ + 'table' => [ + 'description' => '', + 'percentage' => [ + 'label' => 'Porcentaje', + ], + 'tax_class' => [ + 'label' => 'Clase Impositiva', + ], + ], + ], +]; diff --git a/packages/admin/resources/lang/es/staff.php b/packages/admin/resources/lang/es/staff.php new file mode 100644 index 0000000000..bb244d3cc8 --- /dev/null +++ b/packages/admin/resources/lang/es/staff.php @@ -0,0 +1,81 @@ + 'Personal', + + 'plural_label' => 'Personal', + + 'table' => [ + 'firstname' => [ + 'label' => 'Nombre', + ], + 'lastname' => [ + 'label' => 'Apellido', + ], + 'email' => [ + 'label' => 'Correo Electr贸nico', + ], + 'admin' => [ + 'badge' => 'Super Admin', + ], + ], + + 'form' => [ + 'firstname' => [ + 'label' => 'Nombre', + ], + 'lastname' => [ + 'label' => 'Apellido', + ], + 'email' => [ + 'label' => 'Correo Electr贸nico', + ], + 'password' => [ + 'label' => 'Contrase帽a', + 'hint' => 'Restablecer contrase帽a', + ], + 'admin' => [ + 'label' => 'Super Admin', + 'helper' => 'Los roles de super admin no se pueden cambiar en el hub.', + ], + 'roles' => [ + 'label' => 'Roles', + 'helper' => ':roles tienen acceso completo', + ], + 'permissions' => [ + 'label' => 'Permisos', + ], + 'role' => [ + 'label' => 'Nombre del Rol', + ], + ], + + 'action' => [ + 'acl' => [ + 'label' => 'Control de Acceso', + ], + 'add-role' => [ + 'label' => 'Agregar Rol', + ], + 'delete-role' => [ + 'label' => 'Eliminar Rol', + 'heading' => 'Eliminar rol: :role', + ], + ], + + 'acl' => [ + 'title' => 'Control de Acceso', + 'tooltip' => [ + 'roles-included' => 'El permiso est谩 incluido en los siguientes roles', + ], + 'notification' => [ + 'updated' => 'Actualizado', + 'error' => 'Error', + 'no-role' => 'Rol no registrado en Lunar', + 'no-permission' => 'Permiso no registrado en Lunar', + 'no-role-permission' => 'Rol y Permiso no registrados en Lunar', + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/tag.php b/packages/admin/resources/lang/es/tag.php new file mode 100644 index 0000000000..279326801e --- /dev/null +++ b/packages/admin/resources/lang/es/tag.php @@ -0,0 +1,21 @@ + 'Etiqueta', + + 'plural_label' => 'Etiquetas', + + 'table' => [ + 'value' => [ + 'label' => 'Valor', + ], + ], + + 'form' => [ + 'value' => [ + 'label' => 'Valor', + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/taxclass.php b/packages/admin/resources/lang/es/taxclass.php new file mode 100644 index 0000000000..63a22c831d --- /dev/null +++ b/packages/admin/resources/lang/es/taxclass.php @@ -0,0 +1,27 @@ + 'Clase de Impuesto', + + 'plural_label' => 'Clases de Impuesto', + + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'default' => [ + 'label' => 'Predeterminado', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'default' => [ + 'label' => 'Predeterminado', + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/taxrate.php b/packages/admin/resources/lang/es/taxrate.php new file mode 100644 index 0000000000..c29cb30587 --- /dev/null +++ b/packages/admin/resources/lang/es/taxrate.php @@ -0,0 +1,33 @@ + 'Tasa de Impuesto', + + 'plural_label' => 'Tasas de Impuesto', + + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'tax_zone' => [ + 'label' => 'Zona Fiscal', + ], + 'priority' => [ + 'label' => 'Prioridad', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'priority' => [ + 'label' => 'Prioridad', + ], + 'tax_zone_id' => [ + 'label' => 'Zona Fiscal', + ], + ], + +]; diff --git a/packages/admin/resources/lang/es/taxzone.php b/packages/admin/resources/lang/es/taxzone.php new file mode 100644 index 0000000000..638c82d3de --- /dev/null +++ b/packages/admin/resources/lang/es/taxzone.php @@ -0,0 +1,69 @@ + 'Zona Fiscal', + + 'plural_label' => 'Zonas Fiscales', + + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'zone_type' => [ + 'label' => 'Tipo de Zona', + ], + 'active' => [ + 'label' => 'Activo', + ], + 'default' => [ + 'label' => 'Predeterminado', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'zone_type' => [ + 'label' => 'Tipo de Zona', + 'options' => [ + 'country' => 'Limitar a Pa铆ses', + 'states' => 'Limitar a Estados', + 'postcodes' => 'Limitar a C贸digos Postales', + ], + ], + 'price_display' => [ + 'label' => 'Visualizaci贸n de Precios', + 'options' => [ + 'include_tax' => 'Incluir Impuesto', + 'exclude_tax' => 'Excluir Impuesto', + ], + ], + 'active' => [ + 'label' => 'Activo', + ], + 'default' => [ + 'label' => 'Predeterminado', + ], + + 'zone_countries' => [ + 'label' => 'Pa铆ses', + ], + + 'zone_country' => [ + 'label' => 'Pa铆s', + ], + + 'zone_states' => [ + 'label' => 'Estados', + ], + + 'zone_postcodes' => [ + 'label' => 'C贸digos Postales', + 'helper' => 'Enumera cada c贸digo postal en una nueva l铆nea. Soporta comodines como NW*', + ], + + ], + +]; diff --git a/packages/admin/resources/lang/es/user.php b/packages/admin/resources/lang/es/user.php new file mode 100644 index 0000000000..7abb94ae03 --- /dev/null +++ b/packages/admin/resources/lang/es/user.php @@ -0,0 +1,29 @@ + 'Usuario', + + 'plural_label' => 'Usuarios', + + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'email' => [ + 'label' => 'Correo Electr贸nico', + ], + ], + + 'form' => [ + 'email' => [ + 'label' => 'Correo Electr贸nico', + ], + 'password' => [ + 'label' => 'Nueva Contrase帽a', + ], + 'password_confirmation' => [ + 'label' => 'Confirmar Nueva Contrase帽a', + ], + ], +]; diff --git a/packages/admin/resources/lang/es/widgets.php b/packages/admin/resources/lang/es/widgets.php new file mode 100644 index 0000000000..93fb0c8852 --- /dev/null +++ b/packages/admin/resources/lang/es/widgets.php @@ -0,0 +1,118 @@ + [ + 'orders' => [ + 'order_stats_overview' => [ + 'stat_one' => [ + 'label' => 'Pedidos hoy', + 'increase' => 'Aumento del :percentage% desde :count ayer', + 'decrease' => 'Disminuci贸n del :percentage% desde :count ayer', + 'neutral' => 'Sin cambios en comparaci贸n con ayer', + ], + 'stat_two' => [ + 'label' => 'Pedidos en los 煤ltimos 7 d铆as', + 'increase' => 'Aumento del :percentage% desde :count el periodo anterior', + 'decrease' => 'Disminuci贸n del :percentage% desde :count el periodo anterior', + 'neutral' => 'Sin cambios en comparaci贸n con el periodo anterior', + ], + 'stat_three' => [ + 'label' => 'Pedidos en los 煤ltimos 30 d铆as', + 'increase' => 'Aumento del :percentage% desde :count el periodo anterior', + 'decrease' => 'Disminuci贸n del :percentage% desde :count el periodo anterior', + 'neutral' => 'Sin cambios en comparaci贸n con el periodo anterior', + ], + 'stat_four' => [ + 'label' => 'Ventas hoy', + 'increase' => 'Aumento del :percentage% desde :total ayer', + 'decrease' => 'Disminuci贸n del :percentage% desde :total ayer', + 'neutral' => 'Sin cambios en comparaci贸n con ayer', + ], + 'stat_five' => [ + 'label' => 'Ventas en los 煤ltimos 7 d铆as', + 'increase' => 'Aumento del :percentage% desde :total el periodo anterior', + 'decrease' => 'Disminuci贸n del :percentage% desde :total el periodo anterior', + 'neutral' => 'Sin cambios en comparaci贸n con el periodo anterior', + ], + 'stat_six' => [ + 'label' => 'Ventas en los 煤ltimos 30 d铆as', + 'increase' => 'Aumento del :percentage% desde :total el periodo anterior', + 'decrease' => 'Disminuci贸n del :percentage% desde :total el periodo anterior', + 'neutral' => 'Sin cambios en comparaci贸n con el periodo anterior', + ], + ], + 'order_totals_chart' => [ + 'heading' => 'Totales de pedidos del 煤ltimo a帽o', + 'series_one' => [ + 'label' => 'Este Periodo', + ], + 'series_two' => [ + 'label' => 'Periodo Anterior', + ], + 'yaxis' => [ + 'label' => 'Ingresos :currency', + ], + ], + 'order_sales_chart' => [ + 'heading' => 'Informe de Pedidos / Ventas', + 'series_one' => [ + 'label' => 'Pedidos', + ], + 'series_two' => [ + 'label' => 'Ingresos', + ], + 'yaxis' => [ + 'series_one' => [ + 'label' => '# Pedidos', + ], + 'series_two' => [ + 'label' => 'Valor Total', + ], + ], + ], + 'average_order_value' => [ + 'heading' => 'Valor Promedio del Pedido', + ], + 'new_returning_customers' => [ + 'heading' => 'Nuevos vs Clientes Recurrentes', + 'series_one' => [ + 'label' => 'Nuevos Clientes', + ], + 'series_two' => [ + 'label' => 'Clientes Recurrentes', + ], + ], + 'popular_products' => [ + 'heading' => 'M谩s vendidos (煤ltimos 12 meses)', + 'description' => 'Estas cifras se basan en el n煤mero de veces que un producto aparece en un pedido, no en la cantidad pedida.', + ], + 'latest_orders' => [ + 'heading' => '脷ltimos pedidos', + ], + ], + ], + 'customer' => [ + 'stats_overview' => [ + 'total_orders' => [ + 'label' => 'Total de pedidos', + ], + 'avg_spend' => [ + 'label' => 'Gasto Promedio', + ], + 'total_spend' => [ + 'label' => 'Gasto Total', + ], + ], + ], + 'variant_switcher' => [ + 'label' => 'Cambiar Variante', + 'table' => [ + 'sku' => [ + 'label' => 'SKU', + ], + 'values' => [ + 'label' => 'Valores', + ], + ], + ], +]; diff --git a/packages/admin/resources/lang/nl/actions.php b/packages/admin/resources/lang/nl/actions.php new file mode 100644 index 0000000000..c7d1a3783f --- /dev/null +++ b/packages/admin/resources/lang/nl/actions.php @@ -0,0 +1,46 @@ + [ + 'create_root' => [ + 'label' => 'Maak Hoofdcategorie', + ], + 'create_child' => [ + 'label' => 'Maak Subcategorie', + ], + 'move' => [ + 'label' => 'Verplaats Categorie', + ], + 'delete' => [ + 'label' => 'Verwijderen', + ], + ], + 'orders' => [ + 'update_status' => [ + 'label' => 'Status Bijwerken', + 'wizard' => [ + 'step_one' => [ + 'label' => 'Status', + ], + 'step_two' => [ + 'label' => 'Mailers & Meldingen', + 'no_mailers' => 'Er zijn geen mailers beschikbaar voor deze status.', + ], + 'step_three' => [ + 'label' => 'Voorbeeld & Opslaan', + 'no_mailers' => 'Er zijn geen mailers gekozen voor voorbeeld.', + ], + ], + 'notification' => [ + 'label' => 'Orderstatus bijgewerkt', + ], + 'billing_email' => [ + 'label' => 'Facturatie E-mail', + ], + 'shipping_email' => [ + 'label' => 'Verzend E-mail', + ], + ], + + ], +]; diff --git a/packages/admin/resources/lang/nl/activity.php b/packages/admin/resources/lang/nl/activity.php new file mode 100644 index 0000000000..3b181fcef9 --- /dev/null +++ b/packages/admin/resources/lang/nl/activity.php @@ -0,0 +1,29 @@ + 'Activiteit', + + 'plural_label' => 'Activiteiten', + + 'table' => [ + 'subject' => 'Onderwerp', + 'description' => 'Beschrijving', + 'log' => 'Logboek', + 'logged_at' => 'Gelogd Op', + 'event' => 'Gebeurtenis', + 'logged_from' => 'Gelogd Vanaf', + 'logged_until' => 'Gelogd Tot', + ], + + 'form' => [ + 'causer_type' => 'Veroorzaker Type', + 'causer_id' => 'Veroorzaker Id', + 'subject_type' => 'Onderwerp Type', + 'subject_id' => 'Onderwerp Id', + 'description' => 'Beschrijving', + 'attributes' => 'Attributen', + 'old' => 'Oud', + ], + +]; diff --git a/packages/admin/resources/lang/nl/address.php b/packages/admin/resources/lang/nl/address.php new file mode 100644 index 0000000000..8a64008810 --- /dev/null +++ b/packages/admin/resources/lang/nl/address.php @@ -0,0 +1,93 @@ + 'Adres', + + 'plural_label' => 'Adressen', + + 'table' => [ + 'title' => [ + 'label' => 'Titel', + ], + 'first_name' => [ + 'label' => 'Voornaam', + ], + 'last_name' => [ + 'label' => 'Achternaam', + ], + 'company_name' => [ + 'label' => 'Bedrijfsnaam', + ], + 'line_one' => [ + 'label' => 'Adres', + ], + 'line_two' => [ + 'label' => 'Adresregel Twee', + ], + 'line_three' => [ + 'label' => 'Adresregel Drie', + ], + 'city' => [ + 'label' => 'Stad', + ], + 'country_id' => [ + 'label' => 'Land', + ], + 'state' => [ + 'label' => 'Provincie', + ], + 'postcode' => [ + 'label' => 'Postcode', + ], + 'contact_email' => [ + 'label' => 'Contact E-mail', + ], + 'contact_phone' => [ + 'label' => 'Contact Telefoon', + ], + ], + + 'form' => [ + 'title' => [ + 'label' => 'Titel', + ], + 'first_name' => [ + 'label' => 'Voornaam', + ], + 'last_name' => [ + 'label' => 'Achternaam', + ], + 'company_name' => [ + 'label' => 'Bedrijfsnaam', + ], + 'line_one' => [ + 'label' => 'Adresregel Een', + ], + 'line_two' => [ + 'label' => 'Adresregel Twee', + ], + 'line_three' => [ + 'label' => 'Adresregel Drie', + ], + 'city' => [ + 'label' => 'Stad', + ], + 'country_id' => [ + 'label' => 'Land', + ], + 'state' => [ + 'label' => 'Provincie', + ], + 'postcode' => [ + 'label' => 'Postcode', + ], + 'contact_email' => [ + 'label' => 'Contact E-mail', + ], + 'contact_phone' => [ + 'label' => 'Contact Telefoon', + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/attribute.php b/packages/admin/resources/lang/nl/attribute.php new file mode 100644 index 0000000000..9ac83854d6 --- /dev/null +++ b/packages/admin/resources/lang/nl/attribute.php @@ -0,0 +1,55 @@ + 'Attribuut', + + 'plural_label' => 'Attributen', + + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'description' => [ + 'label' => 'Beschrijving', + ], + 'handle' => [ + 'label' => 'Handvat', + ], + 'type' => [ + 'label' => 'Type', + ], + ], + + 'form' => [ + 'attributable_type' => [ + 'label' => 'Type', + ], + 'name' => [ + 'label' => 'Naam', + ], + 'description' => [ + 'label' => 'Beschrijving', + 'helper' => 'Gebruik om de helptekst onder de invoer weer te geven', + ], + 'handle' => [ + 'label' => 'Handvat', + ], + 'searchable' => [ + 'label' => 'Doorzoekbaar', + ], + 'filterable' => [ + 'label' => 'Filterbaar', + ], + 'required' => [ + 'label' => 'Verplicht', + ], + 'type' => [ + 'label' => 'Type', + ], + 'validation_rules' => [ + 'label' => 'Validatieregels', + 'helper' => 'Regels voor attribuutveld, voorbeeld: min:1|max:10|...', + ], + ], +]; diff --git a/packages/admin/resources/lang/nl/attributegroup.php b/packages/admin/resources/lang/nl/attributegroup.php new file mode 100644 index 0000000000..a23a2e3113 --- /dev/null +++ b/packages/admin/resources/lang/nl/attributegroup.php @@ -0,0 +1,46 @@ + 'Attribuutgroep', + + 'plural_label' => 'Attribuutgroepen', + + 'table' => [ + 'attributable_type' => [ + 'label' => 'Type', + ], + 'name' => [ + 'label' => 'Naam', + ], + 'handle' => [ + 'label' => 'Handvat', + ], + 'position' => [ + 'label' => 'Positie', + ], + ], + + 'form' => [ + 'attributable_type' => [ + 'label' => 'Type', + ], + 'name' => [ + 'label' => 'Naam', + ], + 'handle' => [ + 'label' => 'Handvat', + ], + 'position' => [ + 'label' => 'Positie', + ], + ], + + 'action' => [ + 'delete' => [ + 'notification' => [ + 'error_protected' => 'Deze attribuutgroep kan niet worden verwijderd omdat er attributen aan zijn gekoppeld.', + ], + ], + ], +]; diff --git a/packages/admin/resources/lang/nl/auth.php b/packages/admin/resources/lang/nl/auth.php new file mode 100644 index 0000000000..77df920a5f --- /dev/null +++ b/packages/admin/resources/lang/nl/auth.php @@ -0,0 +1,32 @@ + 'Beheerder', + 'roles.admin.description' => 'Beheerder met volledige toegang', + 'roles.staff.label' => 'Personeel', + 'roles.staff.description' => 'Personeel met fundamentele toegang', + /** + * Permissions. + */ + 'permissions.settings.label' => 'Instellingen', + 'permissions.settings.description' => 'Geeft toegang tot het instellingengebied van de hub', + 'permissions.settings:core.label' => 'Kerninstellingen', + 'permissions.settings:core.description' => 'Toegang tot fundamentele winkelinstellingen, zoals kanalen, talen, valuta, enz.', + 'permissions.settings:manage-staff.label' => 'Beheer Personeel', + 'permissions.settings:manage-staff.description' => 'Sta het personeelslid toe om ander personeel te bewerken', + 'permissions.settings:manage-attributes.label' => 'Beheer Attributen', + 'permissions.settings:manage-attributes.description' => 'Sta het personeelslid toe om extra attributen te bewerken en te maken', + 'permissions.catalog:manage-products.label' => 'Beheer Producten', + 'permissions.catalog:manage-products.description' => 'Sta het personeelslid toe om producten, producttypen en merken te bewerken', + 'permissions.catalog:manage-collections.label' => 'Beheer Collecties', + 'permissions.catalog:manage-collections.description' => 'Sta het personeelslid toe om collecties en hun groepen te bewerken', + 'permissions.sales:manage-orders.label' => 'Beheer Bestellingen', + 'permissions.sales:manage-orders.description' => 'Sta het personeelslid toe om bestellingen te beheren', + 'permissions.sales:manage-customers.label' => 'Beheer Klanten', + 'permissions.sales:manage-customers.description' => 'Sta het personeelslid toe om klanten te beheren', + 'permissions.sales:manage-discounts.label' => 'Beheer Kortingen', + 'permissions.sales:manage-discounts.description' => 'Sta het personeelslid toe om kortingen te beheren', +]; diff --git a/packages/admin/resources/lang/nl/brand.php b/packages/admin/resources/lang/nl/brand.php new file mode 100644 index 0000000000..75cd5cd220 --- /dev/null +++ b/packages/admin/resources/lang/nl/brand.php @@ -0,0 +1,72 @@ + 'Merk', + + 'plural_label' => 'Merken', + + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'products_count' => [ + 'label' => 'Aantal Producten', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + ], + + 'action' => [ + 'delete' => [ + 'notification' => [ + 'error_protected' => 'Dit merk kan niet worden verwijderd omdat er producten aan zijn gekoppeld.', + ], + ], + ], + 'pages' => [ + 'products' => [ + 'label' => 'Producten', + 'actions' => [ + 'attach' => [ + 'label' => 'Koppel een product', + 'form' => [ + 'record_id' => [ + 'label' => 'Product', + ], + ], + 'notification' => [ + 'success' => 'Product gekoppeld aan merk', + ], + ], + 'detach' => [ + 'notification' => [ + 'success' => 'Product ontkoppeld.', + ], + ], + ], + ], + 'collections' => [ + 'label' => 'Collecties', + 'table' => [ + 'header_actions' => [ + 'attach' => [ + 'record_select' => [ + 'placeholder' => 'Selecteer een collectie', + ], + ], + ], + ], + 'actions' => [ + 'attach' => [ + 'label' => 'Koppel een collectie', + ], + ], + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/channel.php b/packages/admin/resources/lang/nl/channel.php new file mode 100644 index 0000000000..ade258936a --- /dev/null +++ b/packages/admin/resources/lang/nl/channel.php @@ -0,0 +1,39 @@ + 'Kanaal', + + 'plural_label' => 'Kanalen', + + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'handle' => [ + 'label' => 'Handvat', + ], + 'url' => [ + 'label' => 'URL', + ], + 'default' => [ + 'label' => 'Standaard', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'handle' => [ + 'label' => 'Handvat', + ], + 'url' => [ + 'label' => 'URL', + ], + 'default' => [ + 'label' => 'Standaard', + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/collection.php b/packages/admin/resources/lang/nl/collection.php new file mode 100644 index 0000000000..4b98132e17 --- /dev/null +++ b/packages/admin/resources/lang/nl/collection.php @@ -0,0 +1,45 @@ + 'Collectie', + + 'plural_label' => 'Collecties', + + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + ], + + 'pages' => [ + 'children' => [ + 'label' => 'Subcollecties', + 'actions' => [ + 'create_child' => [ + 'label' => 'Maak Subcollectie', + ], + ], + 'table' => [ + 'children_count' => [ + 'label' => 'Aantal Kinderen', + ], + 'name' => [ + 'label' => 'Naam', + ], + ], + ], + 'edit' => [ + 'label' => 'Basisinformatie', + ], + 'products' => [ + 'label' => 'Producten', + 'actions' => [ + 'attach' => [ + 'label' => 'Product Toevoegen', + ], + ], + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/collectiongroup.php b/packages/admin/resources/lang/nl/collectiongroup.php new file mode 100644 index 0000000000..64a617597c --- /dev/null +++ b/packages/admin/resources/lang/nl/collectiongroup.php @@ -0,0 +1,37 @@ + 'Collectiegroep', + + 'plural_label' => 'Collectiegroepen', + + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'handle' => [ + 'label' => 'Handvat', + ], + 'collections_count' => [ + 'label' => 'Aantal Collecties', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'handle' => [ + 'label' => 'Handvat', + ], + ], + + 'action' => [ + 'delete' => [ + 'notification' => [ + 'error_protected' => 'Deze collectiegroep kan niet worden verwijderd omdat er collecties aan zijn gekoppeld.', + ], + ], + ], +]; diff --git a/packages/admin/resources/lang/nl/components.php b/packages/admin/resources/lang/nl/components.php new file mode 100644 index 0000000000..aa742c853b --- /dev/null +++ b/packages/admin/resources/lang/nl/components.php @@ -0,0 +1,109 @@ + [ + 'notification' => [ + 'updated' => 'Tags bijgewerkt', + ], + ], + + 'activity-log' => [ + 'input' => [ + 'placeholder' => 'Voeg een opmerking toe', + ], + + 'action' => [ + 'add-comment' => 'Voeg opmerking toe', + ], + + 'system' => 'Systeem', + + 'partials' => [ + 'orders' => [ + 'order_created' => 'Bestelling aangemaakt', + + 'status_change' => 'Status bijgewerkt', + + 'capture' => 'Betaling van :amount op kaart eindigend op :last_four', + + 'authorized' => 'Geautoriseerd bedrag van :amount op kaart eindigend op :last_four', + + 'refund' => 'Terugbetaling van :amount op kaart eindigend op :last_four', + + 'address' => ':type bijgewerkt', + + 'billingAddress' => 'Factuuradres', + + 'shippingAddress' => 'Verzendadres', + ], + + 'update' => [ + 'updated' => ':model bijgewerkt', + ], + + 'create' => [ + 'created' => ':model aangemaakt', + ], + + 'tags' => [ + 'updated' => 'Tags bijgewerkt', + 'added' => 'Toegevoegd', + 'removed' => 'Verwijderd', + ], + ], + + 'notification' => [ + 'comment_added' => 'Opmerking toegevoegd', + ], + ], + + 'forms' => [ + 'youtube' => [ + 'helperText' => 'Voer de ID van de YouTube-video in. bijv. dQw4w9WgXcQ', + ], + ], + + 'collection-tree-view' => [ + 'actions' => [ + 'move' => [ + 'form' => [ + 'target_id' => [ + 'label' => 'Bovenliggende collectie', + ], + ], + ], + ], + 'notifications' => [ + 'collections-reordered' => [ + 'success' => 'Collecties opnieuw gerangschikt', + ], + 'node-expanded' => [ + 'danger' => 'Kan collecties niet laden', + ], + 'delete' => [ + 'danger' => 'Kan collectie niet verwijderen', + ], + ], + ], + + 'product-options-list' => [ + 'add-option' => [ + 'label' => 'Optie toevoegen', + ], + 'delete-option' => [ + 'label' => 'Optie verwijderen', + ], + 'remove-shared-option' => [ + 'label' => 'Gedeelde optie verwijderen', + ], + 'add-value' => [ + 'label' => 'Nog een waarde toevoegen', + ], + 'name' => [ + 'label' => 'Naam', + ], + 'values' => [ + 'label' => 'Waarden', + ], + ], +]; diff --git a/packages/admin/resources/lang/nl/currency.php b/packages/admin/resources/lang/nl/currency.php new file mode 100644 index 0000000000..1f903244b1 --- /dev/null +++ b/packages/admin/resources/lang/nl/currency.php @@ -0,0 +1,51 @@ + 'Valuta', + + 'plural_label' => 'Valuta\'s', + + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'code' => [ + 'label' => 'Code', + ], + 'exchange_rate' => [ + 'label' => 'Wisselkoers', + ], + 'decimal_places' => [ + 'label' => 'Decimalen', + ], + 'enabled' => [ + 'label' => 'Ingeschakeld', + ], + 'default' => [ + 'label' => 'Standaard', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'code' => [ + 'label' => 'Code', + ], + 'exchange_rate' => [ + 'label' => 'Wisselkoers', + ], + 'decimal_places' => [ + 'label' => 'Decimalen', + ], + 'enabled' => [ + 'label' => 'Ingeschakeld', + ], + 'default' => [ + 'label' => 'Standaard', + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/customer.php b/packages/admin/resources/lang/nl/customer.php new file mode 100644 index 0000000000..b7411131cc --- /dev/null +++ b/packages/admin/resources/lang/nl/customer.php @@ -0,0 +1,63 @@ + 'Klant', + + 'plural_label' => 'Klanten', + + 'table' => [ + 'full_name' => [ + 'label' => 'Naam', + ], + 'first_name' => [ + 'label' => 'Voornaam', + ], + 'last_name' => [ + 'label' => 'Achternaam', + ], + 'title' => [ + 'label' => 'Titel', + ], + 'company_name' => [ + 'label' => 'Bedrijfsnaam', + ], + 'vat_no' => [ + 'label' => 'BTW Nr.', + ], + 'account_reference' => [ + 'label' => 'Account Referentie', + ], + 'new' => [ + 'label' => 'Nieuw', + ], + 'returning' => [ + 'label' => 'Terugkerend', + ], + ], + + 'form' => [ + 'title' => [ + 'label' => 'Titel', + ], + 'first_name' => [ + 'label' => 'Voornaam', + ], + 'last_name' => [ + 'label' => 'Achternaam', + ], + 'company_name' => [ + 'label' => 'Bedrijfsnaam', + ], + 'account_ref' => [ + 'label' => 'Account Referentie', + ], + 'vat_no' => [ + 'label' => 'BTW Nr.', + ], + 'customer_groups' => [ + 'label' => 'Klantengroepen', + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/customergroup.php b/packages/admin/resources/lang/nl/customergroup.php new file mode 100644 index 0000000000..4b98637373 --- /dev/null +++ b/packages/admin/resources/lang/nl/customergroup.php @@ -0,0 +1,40 @@ + 'Klantengroep', + + 'plural_label' => 'Klantengroepen', + + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'handle' => [ + 'label' => 'Handvat', + ], + 'default' => [ + 'label' => 'Standaard', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'handle' => [ + 'label' => 'Handvat', + ], + 'default' => [ + 'label' => 'Standaard', + ], + ], + + 'action' => [ + 'delete' => [ + 'notification' => [ + 'error_protected' => 'Deze klantengroep kan niet worden verwijderd omdat er klanten aan zijn gekoppeld.', + ], + ], + ], +]; diff --git a/packages/admin/resources/lang/nl/discount.php b/packages/admin/resources/lang/nl/discount.php new file mode 100644 index 0000000000..675d4b10c4 --- /dev/null +++ b/packages/admin/resources/lang/nl/discount.php @@ -0,0 +1,324 @@ + 'Kortingen', + 'label' => 'Korting', + 'form' => [ + 'conditions' => [ + 'heading' => 'Voorwaarden', + ], + 'buy_x_get_y' => [ + 'heading' => 'Koop X Krijg Y', + ], + 'amount_off' => [ + 'heading' => 'Bedrag Korting', + ], + 'name' => [ + 'label' => 'Naam', + ], + 'handle' => [ + 'label' => 'Handle', + ], + 'starts_at' => [ + 'label' => 'Startdatum', + ], + 'ends_at' => [ + 'label' => 'Einddatum', + ], + 'priority' => [ + 'label' => 'Prioriteit', + 'helper_text' => 'Kortingen met een hogere prioriteit worden eerst toegepast.', + 'options' => [ + 'low' => [ + 'label' => 'Laag', + ], + 'medium' => [ + 'label' => 'Middel', + ], + 'high' => [ + 'label' => 'Hoog', + ], + ], + ], + 'stop' => [ + 'label' => 'Stop andere kortingen na deze toe te passen', + ], + 'coupon' => [ + 'label' => 'Coupon', + 'helper_text' => 'Voer de vereiste coupon in voor de korting, als deze leeg is, wordt deze automatisch toegepast.', + ], + 'max_uses' => [ + 'label' => 'Maximaal gebruik', + 'helper_text' => 'Laat leeg voor onbeperkt gebruik.', + ], + 'max_uses_per_user' => [ + 'label' => 'Maximaal gebruik per gebruiker', + 'helper_text' => 'Laat leeg voor onbeperkt gebruik.', + ], + 'minimum_cart_amount' => [ + 'label' => 'Minimale Winkelwagenbedrag', + ], + 'min_qty' => [ + 'label' => 'Producthoeveelheid', + 'helper_text' => 'Stel in hoeveel kwalificerende producten nodig zijn voor de korting.', + ], + 'reward_qty' => [ + 'label' => 'Aantal gratis items', + 'helper_text' => 'Hoeveel van elk item worden afgeprijsd.', + ], + 'max_reward_qty' => [ + 'label' => 'Maximale beloningshoeveelheid', + 'helper_text' => 'Het maximale aantal producten dat kan worden afgeprijsd, ongeacht de criteria.', + ], + 'automatic_rewards' => [ + 'label' => 'Automatisch beloningen toevoegen', + 'helper_text' => 'Schakel in om beloningsproducten toe te voegen wanneer deze niet in de winkelwagen aanwezig zijn.', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'status' => [ + 'label' => 'Status', + \Lunar\Models\Discount::ACTIVE => [ + 'label' => 'Actief', + ], + \Lunar\Models\Discount::PENDING => [ + 'label' => 'In afwachting', + ], + \Lunar\Models\Discount::EXPIRED => [ + 'label' => 'Verlopen', + ], + \Lunar\Models\Discount::SCHEDULED => [ + 'label' => 'Gepland', + ], + ], + 'type' => [ + 'label' => 'Type', + ], + 'starts_at' => [ + 'label' => 'Startdatum', + ], + 'ends_at' => [ + 'label' => 'Einddatum', + ], + ], + 'pages' => [ + 'availability' => [ + 'label' => 'Beschikbaarheid', + ], + 'limitations' => [ + 'label' => 'Beperkingen', + ], + ], + 'relationmanagers' => [ + 'collections' => [ + 'title' => 'Collecties', + 'description' => 'Selecteer welke collecties beperkt moeten worden tot deze korting.', + 'actions' => [ + 'attach' => [ + 'label' => 'Collectie Toevoegen', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'type' => [ + 'label' => 'Type', + 'limitation' => [ + 'label' => 'Beperking', + ], + 'exclusion' => [ + 'label' => 'Uitsluiting', + ], + ], + ], + 'form' => [ + 'type' => [ + 'options' => [ + 'limitation' => [ + 'label' => 'Beperking', + ], + 'exclusion' => [ + 'label' => 'Uitsluiting', + ], + ], + ], + ], + ], + 'brands' => [ + 'title' => 'Merken', + 'description' => 'Selecteer welke merken beperkt moeten worden tot deze korting.', + 'actions' => [ + 'attach' => [ + 'label' => 'Merk Toevoegen', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'type' => [ + 'label' => 'Type', + 'limitation' => [ + 'label' => 'Beperking', + ], + 'exclusion' => [ + 'label' => 'Uitsluiting', + ], + ], + ], + 'form' => [ + 'type' => [ + 'options' => [ + 'limitation' => [ + 'label' => 'Beperking', + ], + 'exclusion' => [ + 'label' => 'Uitsluiting', + ], + ], + ], + ], + ], + 'products' => [ + 'title' => 'Producten', + 'description' => 'Selecteer welke producten beperkt moeten worden tot deze korting.', + 'actions' => [ + 'attach' => [ + 'label' => 'Product Toevoegen', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'type' => [ + 'label' => 'Type', + 'limitation' => [ + 'label' => 'Beperking', + ], + 'exclusion' => [ + 'label' => 'Uitsluiting', + ], + ], + ], + 'form' => [ + 'type' => [ + 'options' => [ + 'limitation' => [ + 'label' => 'Beperking', + ], + 'exclusion' => [ + 'label' => 'Uitsluiting', + ], + ], + ], + ], + ], + 'rewards' => [ + 'title' => 'Productbeloningen', + 'description' => 'Selecteer welke producten worden afgeprijsd als ze in de winkelwagen zitten en aan de bovenstaande voorwaarden voldoen.', + 'actions' => [ + 'attach' => [ + 'label' => 'Product Toevoegen', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'type' => [ + 'label' => 'Type', + 'limitation' => [ + 'label' => 'Beperking', + ], + 'exclusion' => [ + 'label' => 'Uitsluiting', + ], + ], + ], + 'form' => [ + 'type' => [ + 'options' => [ + 'limitation' => [ + 'label' => 'Beperking', + ], + 'exclusion' => [ + 'label' => 'Uitsluiting', + ], + ], + ], + ], + ], + 'conditions' => [ + 'title' => 'Productvoorwaarden', + 'description' => 'Selecteer de producten die nodig zijn voor de korting.', + 'actions' => [ + 'attach' => [ + 'label' => 'Product Toevoegen', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'type' => [ + 'label' => 'Type', + 'limitation' => [ + 'label' => 'Beperking', + ], + 'exclusion' => [ + 'label' => 'Uitsluiting', + ], + ], + ], + 'form' => [ + 'type' => [ + 'options' => [ + 'limitation' => [ + 'label' => 'Beperking', + ], + 'exclusion' => [ + 'label' => 'Uitsluiting', + ], + ], + ], + ], + ], + 'productvariants' => [ + 'title' => 'Productvarianten', + 'description' => 'Selecteer welke productvarianten beperkt moeten worden tot deze korting.', + 'actions' => [ + 'attach' => [ + 'label' => 'Productvariant Toevoegen', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'sku' => [ + 'label' => 'SKU', + ], + 'values' => [ + 'label' => 'Optie(s)', + ], + ], + 'form' => [ + 'type' => [ + 'options' => [ + 'limitation' => [ + 'label' => 'Beperking', + ], + 'exclusion' => [ + 'label' => 'Uitsluiting', + ], + ], + ], + ], + ], + ], +]; diff --git a/packages/admin/resources/lang/nl/fieldtypes.php b/packages/admin/resources/lang/nl/fieldtypes.php new file mode 100644 index 0000000000..4b36c2846f --- /dev/null +++ b/packages/admin/resources/lang/nl/fieldtypes.php @@ -0,0 +1,72 @@ + [ + 'label' => 'Keuzelijst', + 'form' => [ + 'lookups' => [ + 'label' => 'Opzoekingen', + 'key_label' => 'Label', + 'value_label' => 'Waarde', + ], + ], + ], + 'listfield' => [ + 'label' => 'Lijstveld', + ], + 'text' => [ + 'label' => 'Tekst', + 'form' => [ + 'richtext' => [ + 'label' => 'Rich Text', + ], + ], + ], + 'translatedtext' => [ + 'label' => 'Vertaald Tekst', + 'form' => [ + 'richtext' => [ + 'label' => 'Rich Text', + ], + 'locales' => 'Talen', + ], + ], + 'toggle' => [ + 'label' => 'Schakelaar', + ], + 'youtube' => [ + 'label' => 'YouTube', + ], + 'vimeo' => [ + 'label' => 'Vimeo', + ], + 'number' => [ + 'label' => 'Nummer', + 'form' => [ + 'min' => [ + 'label' => 'Min.', + ], + 'max' => [ + 'label' => 'Max.', + ], + ], + ], + 'file' => [ + 'label' => 'Bestand', + 'form' => [ + 'file_types' => [ + 'label' => 'Toegestane Bestandstypen', + 'placeholder' => 'Nieuwe MIME', + ], + 'multiple' => [ + 'label' => 'Meerdere Bestanden Toestaan', + ], + 'min_files' => [ + 'label' => 'Min. Bestanden', + ], + 'max_files' => [ + 'label' => 'Max. Bestanden', + ], + ], + ], +]; diff --git a/packages/admin/resources/lang/nl/global.php b/packages/admin/resources/lang/nl/global.php new file mode 100644 index 0000000000..a98f7688da --- /dev/null +++ b/packages/admin/resources/lang/nl/global.php @@ -0,0 +1,12 @@ + [ + 'catalog' => 'Catalogus', + 'sales' => 'Verkoop', + 'reports' => 'Rapporten', + 'settings' => 'Instellingen', + ], + +]; diff --git a/packages/admin/resources/lang/nl/language.php b/packages/admin/resources/lang/nl/language.php new file mode 100644 index 0000000000..58803b8877 --- /dev/null +++ b/packages/admin/resources/lang/nl/language.php @@ -0,0 +1,33 @@ + 'Taal', + + 'plural_label' => 'Talen', + + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'code' => [ + 'label' => 'Code', + ], + 'default' => [ + 'label' => 'Standaard', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'code' => [ + 'label' => 'Code', + ], + 'default' => [ + 'label' => 'Standaard', + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/order.php b/packages/admin/resources/lang/nl/order.php new file mode 100644 index 0000000000..311cce8d89 --- /dev/null +++ b/packages/admin/resources/lang/nl/order.php @@ -0,0 +1,292 @@ + 'Bestelling', + + 'plural_label' => 'Bestellingen', + + 'breadcrumb' => [ + 'manage' => 'Beheren', + ], + + 'transactions' => [ + 'capture' => 'Ge茂ncasseerd', + 'intent' => 'Voorgenomen', + 'refund' => 'Terugbetaald', + 'failed' => 'Mislukt', + ], + + 'table' => [ + 'status' => [ + 'label' => 'Status', + ], + 'reference' => [ + 'label' => 'Referentie', + ], + 'customer_reference' => [ + 'label' => 'Klantreferentie', + ], + 'customer' => [ + 'label' => 'Klant', + ], + 'tags' => [ + 'label' => 'Tags', + ], + 'postcode' => [ + 'label' => 'Postcode', + ], + 'email' => [ + 'label' => 'E-mail', + 'copy_message' => 'E-mailadres gekopieerd', + ], + 'phone' => [ + 'label' => 'Telefoon', + ], + 'total' => [ + 'label' => 'Totaal', + ], + 'date' => [ + 'label' => 'Datum', + ], + 'new_customer' => [ + 'label' => 'Klanttype', + ], + 'placed_after' => [ + 'label' => 'Geplaatst na', + ], + 'placed_before' => [ + 'label' => 'Geplaatst voor', + ], + ], + + 'form' => [ + 'address' => [ + 'first_name' => [ + 'label' => 'Voornaam', + ], + 'last_name' => [ + 'label' => 'Achternaam', + ], + 'line_one' => [ + 'label' => 'Adresregel 1', + ], + 'line_two' => [ + 'label' => 'Adresregel 2', + ], + 'line_three' => [ + 'label' => 'Adresregel 3', + ], + 'company_name' => [ + 'label' => 'Bedrijfsnaam', + ], + 'contact_phone' => [ + 'label' => 'Telefoon', + ], + 'contact_email' => [ + 'label' => 'E-mailadres', + ], + 'city' => [ + 'label' => 'Stad', + ], + 'state' => [ + 'label' => 'Staat / Provincie', + ], + 'postcode' => [ + 'label' => 'Postcode', + ], + 'country_id' => [ + 'label' => 'Land', + ], + ], + + 'reference' => [ + 'label' => 'Referentie', + ], + 'status' => [ + 'label' => 'Status', + ], + 'transaction' => [ + 'label' => 'Transactie', + ], + 'amount' => [ + 'label' => 'Bedrag', + + 'hint' => [ + 'less_than_total' => 'Je staat op het punt een bedrag te incasseren dat minder is dan de totale transactiewaarde', + ], + ], + + 'notes' => [ + 'label' => 'Notities', + ], + 'confirm' => [ + 'label' => 'Bevestigen', + + 'alert' => 'Bevestiging vereist', + + 'hint' => [ + 'capture' => 'Bevestig alstublieft dat u deze betaling wilt incasseren', + 'refund' => 'Bevestig alstublieft dat u dit bedrag wilt terugbetalen.', + ], + ], + ], + + 'infolist' => [ + 'notes' => [ + 'label' => 'Notities', + 'placeholder' => 'Geen notities bij deze bestelling', + ], + 'delivery_instructions' => [ + 'label' => 'Leveringsinstructies', + ], + 'shipping_total' => [ + 'label' => 'Verzendkosten Totaal', + ], + 'paid' => [ + 'label' => 'Betaald', + ], + 'refund' => [ + 'label' => 'Terugbetaling', + ], + 'unit_price' => [ + 'label' => 'Eenheidsprijs', + ], + 'quantity' => [ + 'label' => 'Aantal', + ], + 'sub_total' => [ + 'label' => 'Subtotaal', + ], + 'discount_total' => [ + 'label' => 'Korting Totaal', + ], + 'total' => [ + 'label' => 'Totaal', + ], + 'current_stock_level' => [ + 'message' => 'Huidig Voorraadniveau: :count', + ], + 'purchase_stock_level' => [ + 'message' => 'op het moment van bestelling: :count', + ], + 'status' => [ + 'label' => 'Status', + ], + 'reference' => [ + 'label' => 'Referentie', + ], + 'customer_reference' => [ + 'label' => 'Klantreferentie', + ], + 'channel' => [ + 'label' => 'Kanaal', + ], + 'date_created' => [ + 'label' => 'Aanmaakdatum', + ], + 'date_placed' => [ + 'label' => 'Plaatsingsdatum', + ], + 'new_returning' => [ + 'label' => 'Nieuw / Terugkerend', + ], + 'new_customer' => [ + 'label' => 'Nieuwe Klant', + ], + 'returning_customer' => [ + 'label' => 'Terugkerende Klant', + ], + 'shipping_address' => [ + 'label' => 'Verzendadres', + ], + 'billing_address' => [ + 'label' => 'Factuuradres', + ], + 'address_not_set' => [ + 'label' => 'Geen adres ingesteld', + ], + 'billing_matches_shipping' => [ + 'label' => 'Zelfde als verzendadres', + ], + 'additional_info' => [ + 'label' => 'Aanvullende informatie', + ], + 'no_additional_info' => [ + 'label' => 'Geen aanvullende informatie', + ], + 'tags' => [ + 'label' => 'Tags', + ], + 'timeline' => [ + 'label' => 'Tijdlijn', + ], + 'transactions' => [ + 'label' => 'Transacties', + 'placeholder' => 'Geen transacties', + ], + 'alert' => [ + 'requires_capture' => 'Deze bestelling moet nog worden ge茂ncasseerd.', + 'partially_refunded' => 'Deze bestelling is gedeeltelijk terugbetaald.', + 'refunded' => 'Deze bestelling is terugbetaald.', + ], + ], + + 'action' => [ + 'bulk_update_status' => [ + 'label' => 'Status Bijwerken', + 'notification' => 'Bestellingsstatus bijgewerkt', + ], + 'update_status' => [ + 'new_status' => [ + 'label' => 'Nieuwe status', + ], + 'additional_content' => [ + 'label' => 'Aanvullende inhoud', + ], + 'additional_email_recipient' => [ + 'label' => 'Aanvullende e-mailontvanger', + 'placeholder' => 'optioneel', + ], + ], + 'download_order_pdf' => [ + 'label' => 'PDF Downloaden', + 'notification' => 'Bestelling PDF downloaden', + ], + 'edit_address' => [ + 'label' => 'Bewerken', + + 'notification' => [ + 'error' => 'Fout', + + 'billing_address' => [ + 'saved' => 'Factuuradres opgeslagen', + ], + + 'shipping_address' => [ + 'saved' => 'Verzendadres opgeslagen', + ], + ], + ], + 'edit_tags' => [ + 'label' => 'Bewerken', + ], + 'capture_payment' => [ + 'label' => 'Betaling Incasseren', + + 'notification' => [ + 'error' => 'Er was een probleem met het incasseren', + 'success' => 'Incasseren succesvol', + ], + ], + 'refund_payment' => [ + 'label' => 'Terugbetaling', + + 'notification' => [ + 'error' => 'Er was een probleem met de terugbetaling', + 'success' => 'Terugbetaling succesvol', + ], + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/product.php b/packages/admin/resources/lang/nl/product.php new file mode 100644 index 0000000000..1720034b0f --- /dev/null +++ b/packages/admin/resources/lang/nl/product.php @@ -0,0 +1,121 @@ + 'Product', + + 'plural_label' => 'Producten', + + 'status' => [ + 'unpublished' => [ + 'content' => 'Momenteel in conceptstatus, dit product is verborgen op alle kanalen en klantgroepen.', + ], + 'availability' => [ + 'customer_groups' => 'Dit product is momenteel niet beschikbaar voor alle klantgroepen.', + 'channels' => 'Dit product is momenteel niet beschikbaar voor alle kanalen.', + ], + ], + + 'table' => [ + 'status' => [ + 'label' => 'Status', + 'states' => [ + 'deleted' => 'Verwijderd', + 'draft' => 'Concept', + 'published' => 'Gepubliceerd', + ], + ], + 'name' => [ + 'label' => 'Naam', + ], + 'brand' => [ + 'label' => 'Merk', + ], + 'sku' => [ + 'label' => 'SKU', + ], + 'stock' => [ + 'label' => 'Voorraad', + ], + 'producttype' => [ + 'label' => 'Producttype', + ], + ], + + 'actions' => [ + 'edit_status' => [ + 'label' => 'Status Bijwerken', + 'heading' => 'Status Bijwerken', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'brand' => [ + 'label' => 'Merk', + ], + 'sku' => [ + 'label' => 'SKU', + ], + 'producttype' => [ + 'label' => 'Producttype', + ], + 'status' => [ + 'label' => 'Status', + 'options' => [ + 'published' => [ + 'label' => 'Gepubliceerd', + 'description' => 'Dit product zal beschikbaar zijn voor alle ingeschakelde klantgroepen en kanalen', + ], + 'draft' => [ + 'label' => 'Concept', + 'description' => 'Dit product zal verborgen zijn op alle kanalen en klantgroepen', + ], + ], + ], + 'tags' => [ + 'label' => 'Tags', + ], + 'collections' => [ + 'label' => 'Collecties', + ], + ], + + 'pages' => [ + 'availability' => [ + 'label' => 'Beschikbaarheid', + ], + 'identifiers' => [ + 'label' => 'Product Identificatoren', + ], + 'inventory' => [ + 'label' => 'Voorraad', + ], + 'pricing' => [ + 'form' => [ + 'tax_class_id' => [ + 'label' => 'Belastingklasse', + ], + 'tax_ref' => [ + 'label' => 'Belastingreferentie', + 'helper_text' => 'Optioneel, voor integratie met systemen van derden.', + ], + ], + ], + 'shipping' => [ + 'label' => 'Verzending', + ], + 'variants' => [ + 'label' => 'Varianten', + ], + 'collections' => [ + 'label' => 'Collecties', + ], + 'associations' => [ + 'label' => 'Productassociaties', + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/productoption.php b/packages/admin/resources/lang/nl/productoption.php new file mode 100644 index 0000000000..d99beca27e --- /dev/null +++ b/packages/admin/resources/lang/nl/productoption.php @@ -0,0 +1,124 @@ + 'Productoptie', + + 'plural_label' => 'Productopties', + + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'label' => [ + 'label' => 'Label', + ], + 'handle' => [ + 'label' => 'Handvat', + ], + 'shared' => [ + 'label' => 'Gedeeld', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'label' => [ + 'label' => 'Label', + ], + 'handle' => [ + 'label' => 'Handvat', + ], + ], + + 'widgets' => [ + 'product-options' => [ + 'notifications' => [ + 'save-variants' => [ + 'success' => [ + 'title' => 'Productvarianten opgeslagen', + ], + ], + ], + 'actions' => [ + 'cancel' => [ + 'label' => 'Annuleren', + ], + 'save-options' => [ + 'label' => 'Opties opslaan', + ], + 'add-shared-option' => [ + 'label' => 'Gedeelde optie toevoegen', + 'form' => [ + 'product_option' => [ + 'label' => 'Productoptie', + ], + 'no_shared_components' => [ + 'label' => 'Er zijn geen gedeelde opties beschikbaar.', + ], + ], + ], + 'add-restricted-option' => [ + 'label' => 'Optie toevoegen', + ], + ], + 'options-list' => [ + 'empty' => [ + 'heading' => 'Er zijn geen productopties geconfigureerd', + 'description' => 'Voeg een gedeelde of beperkte productoptie toe om enkele varianten te genereren.', + ], + ], + 'options-table' => [ + 'title' => 'Productopties', + 'configure-options' => [ + 'label' => 'Opties configureren', + ], + 'table' => [ + 'option' => [ + 'label' => 'Optie', + ], + 'values' => [ + 'label' => 'Waarden', + ], + ], + ], + 'variants-table' => [ + 'title' => 'Productvarianten', + 'actions' => [ + 'create' => [ + 'label' => 'Variant maken', + ], + 'edit' => [ + 'label' => 'Bewerken', + ], + 'delete' => [ + 'label' => 'Verwijderen', + ], + ], + 'empty' => [ + 'heading' => 'Geen varianten geconfigureerd', + ], + 'table' => [ + 'new' => [ + 'label' => 'NIEUW', + ], + 'option' => [ + 'label' => 'Optie', + ], + 'sku' => [ + 'label' => 'SKU', + ], + 'price' => [ + 'label' => 'Prijs', + ], + 'stock' => [ + 'label' => 'Voorraad', + ], + ], + ], + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/producttype.php b/packages/admin/resources/lang/nl/producttype.php new file mode 100644 index 0000000000..2f674d3a30 --- /dev/null +++ b/packages/admin/resources/lang/nl/producttype.php @@ -0,0 +1,52 @@ + 'Producttype', + + 'plural_label' => 'Producttypen', + + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'products_count' => [ + 'label' => 'Aantal producten', + ], + 'product_attributes_count' => [ + 'label' => 'Productattributen', + ], + 'variant_attributes_count' => [ + 'label' => 'Variantattributen', + ], + ], + + 'tabs' => [ + 'product_attributes' => [ + 'label' => 'Productattributen', + ], + 'variant_attributes' => [ + 'label' => 'Variantattributen', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + ], + + 'attributes' => [ + 'no_groups' => 'Er zijn geen attributengroepen beschikbaar.', + 'no_attributes' => 'Er zijn geen attributen beschikbaar.', + ], + + 'action' => [ + 'delete' => [ + 'notification' => [ + 'error_protected' => 'Dit producttype kan niet worden verwijderd omdat er producten aan zijn gekoppeld.', + ], + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/productvariant.php b/packages/admin/resources/lang/nl/productvariant.php new file mode 100644 index 0000000000..468a51f04e --- /dev/null +++ b/packages/admin/resources/lang/nl/productvariant.php @@ -0,0 +1,105 @@ + 'Productvariant', + 'plural_label' => 'Productvarianten', + 'pages' => [ + 'edit' => [ + 'title' => 'Basisinformatie', + ], + 'media' => [ + 'title' => 'Media', + 'form' => [ + 'no_selection' => [ + 'label' => 'U heeft momenteel geen afbeelding geselecteerd voor deze variant.', + ], + 'no_media_available' => [ + 'label' => 'Er is momenteel geen media beschikbaar voor dit product.', + ], + 'images' => [ + 'label' => 'Primaire Afbeelding', + 'helper_text' => 'Selecteer de productafbeelding die deze variant vertegenwoordigt.', + ], + ], + ], + 'identifiers' => [ + 'title' => 'Identificatoren', + ], + 'inventory' => [ + 'title' => 'Voorraad', + ], + 'shipping' => [ + 'title' => 'Verzending', + ], + ], + 'form' => [ + 'sku' => [ + 'label' => 'Artikelnummer (SKU)', + ], + 'gtin' => [ + 'label' => 'Globaal Handelsartikelnummer (GTIN)', + ], + 'mpn' => [ + 'label' => 'Fabrikant Onderdeelnummer (MPN)', + ], + 'ean' => [ + 'label' => 'UPC/EAN', + ], + 'stock' => [ + 'label' => 'Op Voorraad', + ], + 'backorder' => [ + 'label' => 'In Nabestelling', + ], + 'purchasable' => [ + 'label' => 'Koopbaarheid', + 'options' => [ + 'always' => 'Altijd', + 'in_stock' => 'Op Voorraad', + 'in_stock_or_on_backorder' => 'Op Voorraad of In Nabestelling', + ], + ], + 'unit_quantity' => [ + 'label' => 'Eenheidsaantal', + 'helper_text' => 'Hoeveel individuele items vormen 1 eenheid.', + ], + 'min_quantity' => [ + 'label' => 'Minimale Hoeveelheid', + 'helper_text' => 'De minimale hoeveelheid van een productvariant die in 茅茅n aankoop kan worden gekocht.', + ], + 'quantity_increment' => [ + 'label' => 'Hoeveelheidsverhoging', + 'helper_text' => 'De productvariant moet in veelvouden van deze hoeveelheid worden gekocht.', + ], + 'tax_class_id' => [ + 'label' => 'Belastingklasse', + ], + 'shippable' => [ + 'label' => 'Verzendbaar', + ], + 'length_value' => [ + 'label' => 'Lengte', + ], + 'length_unit' => [ + 'label' => 'Lengte-eenheid', + ], + 'width_value' => [ + 'label' => 'Breedte', + ], + 'width_unit' => [ + 'label' => 'Breedte-eenheid', + ], + 'height_value' => [ + 'label' => 'Hoogte', + ], + 'height_unit' => [ + 'label' => 'Hoogte-eenheid', + ], + 'weight_value' => [ + 'label' => 'Gewicht', + ], + 'weight_unit' => [ + 'label' => 'Gewichtseenheid', + ], + ], +]; diff --git a/packages/admin/resources/lang/nl/relationmanagers.php b/packages/admin/resources/lang/nl/relationmanagers.php new file mode 100644 index 0000000000..f982eead63 --- /dev/null +++ b/packages/admin/resources/lang/nl/relationmanagers.php @@ -0,0 +1,262 @@ + [ + 'actions' => [ + 'attach' => [ + 'label' => 'Klantengroep Koppelen', + ], + ], + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'enabled' => [ + 'label' => 'Ingeschakeld', + ], + 'starts_at' => [ + 'label' => 'Startdatum', + ], + 'ends_at' => [ + 'label' => 'Einddatum', + ], + 'visible' => [ + 'label' => 'Zichtbaar', + ], + 'purchasable' => [ + 'label' => 'Koopbaar', + ], + ], + 'table' => [ + 'description' => 'Koppel klantengroepen aan dit :type om de beschikbaarheid te bepalen.', + 'name' => [ + 'label' => 'Naam', + ], + 'enabled' => [ + 'label' => 'Ingeschakeld', + ], + 'starts_at' => [ + 'label' => 'Startdatum', + ], + 'ends_at' => [ + 'label' => 'Einddatum', + ], + 'visible' => [ + 'label' => 'Zichtbaar', + ], + 'purchasable' => [ + 'label' => 'Koopbaar', + ], + ], + ], + 'channels' => [ + 'actions' => [ + 'attach' => [ + 'label' => 'Nog een Kanaal Inplannen', + ], + ], + 'form' => [ + 'enabled' => [ + 'label' => 'Ingeschakeld', + 'helper_text_false' => 'Dit kanaal wordt niet ingeschakeld, zelfs als er een startdatum aanwezig is.', + ], + 'starts_at' => [ + 'label' => 'Startdatum', + 'helper_text' => 'Laat leeg om beschikbaar te zijn vanaf elke datum.', + ], + 'ends_at' => [ + 'label' => 'Einddatum', + 'helper_text' => 'Laat leeg om onbeperkt beschikbaar te zijn.', + ], + ], + 'table' => [ + 'description' => 'Bepaal welke kanalen zijn ingeschakeld en plan de beschikbaarheid.', + 'name' => [ + 'label' => 'Naam', + ], + 'enabled' => [ + 'label' => 'Ingeschakeld', + ], + 'starts_at' => [ + 'label' => 'Startdatum', + ], + 'ends_at' => [ + 'label' => 'Einddatum', + ], + ], + ], + 'medias' => [ + 'title' => 'Media', + 'title_plural' => 'Media', + 'actions' => [ + 'create' => [ + 'label' => 'Media Aanmaken', + ], + 'view' => [ + 'label' => 'Bekijken', + ], + ], + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'media' => [ + 'label' => 'Afbeelding', + ], + 'primary' => [ + 'label' => 'Primair', + ], + ], + 'table' => [ + 'image' => [ + 'label' => 'Afbeelding', + ], + 'file' => [ + 'label' => 'Bestand', + ], + 'name' => [ + 'label' => 'Naam', + ], + 'primary' => [ + 'label' => 'Primair', + ], + ], + ], + 'urls' => [ + 'title' => 'URL', + 'title_plural' => 'URLs', + 'actions' => [ + 'create' => [ + 'label' => 'URL Aanmaken', + ], + ], + 'filters' => [ + 'language_id' => [ + 'label' => 'Taal', + ], + ], + 'form' => [ + 'slug' => [ + 'label' => 'Slug', + ], + 'default' => [ + 'label' => 'Standaard', + ], + 'language' => [ + 'label' => 'Taal', + ], + ], + 'table' => [ + 'slug' => [ + 'label' => 'Slug', + ], + 'default' => [ + 'label' => 'Standaard', + ], + 'language' => [ + 'label' => 'Taal', + ], + ], + ], + 'customer_group_pricing' => [ + 'title' => 'Klantengroep Prijzen', + 'title_plural' => 'Klantengroep Prijzen', + 'table' => [ + 'heading' => 'Klantengroep Prijzen', + 'description' => 'Koppel prijs aan klantengroepen om de productprijs te bepalen.', + 'empty_state' => [ + 'label' => 'Er bestaan geen klantengroep prijzen.', + 'description' => 'Maak een klantengroep prijs om te beginnen.', + ], + 'actions' => [ + 'create' => [ + 'label' => 'Klantengroep Prijs Toevoegen', + 'modal' => [ + 'heading' => 'Klantengroep Prijs Aanmaken', + ], + ], + ], + ], + ], + 'pricing' => [ + 'title' => 'Prijzen', + 'title_plural' => 'Prijzen', + 'tab_name' => 'Prijsbreuken', + 'table' => [ + 'heading' => 'Prijsbreuken', + 'description' => 'Verlaag de prijs wanneer een klant in grotere hoeveelheden koopt.', + 'empty_state' => [ + 'label' => 'Er bestaan geen prijsbreuken.', + ], + 'actions' => [ + 'create' => [ + 'label' => 'Prijsbreuk Toevoegen', + ], + ], + 'price' => [ + 'label' => 'Prijs', + ], + 'customer_group' => [ + 'label' => 'Klantengroep', + 'placeholder' => 'Alle Klantengroepen', + ], + 'min_quantity' => [ + 'label' => 'Minimale Hoeveelheid', + ], + 'currency' => [ + 'label' => 'Valuta', + ], + ], + 'form' => [ + 'price' => [ + 'label' => 'Prijs', + 'helper_text' => 'De aankoopprijs, voor kortingen.', + ], + 'customer_group_id' => [ + 'label' => 'Klantengroep', + 'placeholder' => 'Alle Klantengroepen', + 'helper_text' => 'Selecteer welke klantengroep deze prijs van toepassing is.', + ], + 'min_quantity' => [ + 'label' => 'Minimale Hoeveelheid', + 'helper_text' => 'Selecteer de minimale hoeveelheid waarvoor deze prijs beschikbaar is.', + 'validation' => [ + 'unique' => 'Klantengroep en Minimale Hoeveelheid moeten uniek zijn.', + ], + ], + 'currency_id' => [ + 'label' => 'Valuta', + 'helper_text' => 'Selecteer de valuta voor deze prijs.', + ], + 'compare_price' => [ + 'label' => 'Vergelijkingsprijs', + 'helper_text' => 'De oorspronkelijke prijs of adviesprijs, ter vergelijking met de aankoopprijs.', + ], + 'basePrices' => [ + 'title' => 'Prijzen', + 'form' => [ + 'price' => [ + 'label' => 'Prijs', + 'helper_text' => 'De aankoopprijs, voor kortingen.', + ], + 'compare_price' => [ + 'label' => 'Vergelijkingsprijs', + 'helper_text' => 'De oorspronkelijke prijs of adviesprijs, ter vergelijking met de aankoopprijs.', + ], + ], + 'tooltip' => 'Automatisch gegenereerd op basis van wisselkoersen.', + ], + ], + ], + 'tax_rate_amounts' => [ + 'table' => [ + 'description' => '', + 'percentage' => [ + 'label' => 'Percentage', + ], + 'tax_class' => [ + 'label' => 'Belastingklasse', + ], + ], + ], +]; diff --git a/packages/admin/resources/lang/nl/staff.php b/packages/admin/resources/lang/nl/staff.php new file mode 100644 index 0000000000..bf9add60b6 --- /dev/null +++ b/packages/admin/resources/lang/nl/staff.php @@ -0,0 +1,81 @@ + 'Personeel', + + 'plural_label' => 'Personeel', + + 'table' => [ + 'firstname' => [ + 'label' => 'Voornaam', + ], + 'lastname' => [ + 'label' => 'Achternaam', + ], + 'email' => [ + 'label' => 'E-mail', + ], + 'admin' => [ + 'badge' => 'Super Admin', + ], + ], + + 'form' => [ + 'firstname' => [ + 'label' => 'Voornaam', + ], + 'lastname' => [ + 'label' => 'Achternaam', + ], + 'email' => [ + 'label' => 'E-mail', + ], + 'password' => [ + 'label' => 'Wachtwoord', + 'hint' => 'Wachtwoord resetten', + ], + 'admin' => [ + 'label' => 'Super Admin', + 'helper' => 'Super admin rollen kunnen niet worden gewijzigd in de hub.', + ], + 'roles' => [ + 'label' => 'Rollen', + 'helper' => ':roles hebben volledige toegang', + ], + 'permissions' => [ + 'label' => 'Machtigingen', + ], + 'role' => [ + 'label' => 'Rolnaam', + ], + ], + + 'action' => [ + 'acl' => [ + 'label' => 'Toegangscontrole', + ], + 'add-role' => [ + 'label' => 'Rol toevoegen', + ], + 'delete-role' => [ + 'label' => 'Rol verwijderen', + 'heading' => 'Rol verwijderen: :role', + ], + ], + + 'acl' => [ + 'title' => 'Toegangscontrole', + 'tooltip' => [ + 'roles-included' => 'Machtiging is inbegrepen in de volgende rollen', + ], + 'notification' => [ + 'updated' => 'Bijgewerkt', + 'error' => 'Fout', + 'no-role' => 'Rol niet geregistreerd in Lunar', + 'no-permission' => 'Machtiging niet geregistreerd in Lunar', + 'no-role-permission' => 'Rol en Machtiging niet geregistreerd in Lunar', + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/tag.php b/packages/admin/resources/lang/nl/tag.php new file mode 100644 index 0000000000..ece834d9d7 --- /dev/null +++ b/packages/admin/resources/lang/nl/tag.php @@ -0,0 +1,21 @@ + 'Label', + + 'plural_label' => 'Labels', + + 'table' => [ + 'value' => [ + 'label' => 'Waarde', + ], + ], + + 'form' => [ + 'value' => [ + 'label' => 'Waarde', + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/taxclass.php b/packages/admin/resources/lang/nl/taxclass.php new file mode 100644 index 0000000000..506e5962b0 --- /dev/null +++ b/packages/admin/resources/lang/nl/taxclass.php @@ -0,0 +1,27 @@ + 'Belastingklasse', + + 'plural_label' => 'Belastingklassen', + + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'default' => [ + 'label' => 'Standaard', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'default' => [ + 'label' => 'Standaard', + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/taxrate.php b/packages/admin/resources/lang/nl/taxrate.php new file mode 100644 index 0000000000..dbd6e7cd3d --- /dev/null +++ b/packages/admin/resources/lang/nl/taxrate.php @@ -0,0 +1,33 @@ + 'Belastingtarief', + + 'plural_label' => 'Belastingtarieven', + + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'tax_zone' => [ + 'label' => 'Belastingzone', + ], + 'priority' => [ + 'label' => 'Prioriteit', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'priority' => [ + 'label' => 'Prioriteit', + ], + 'tax_zone_id' => [ + 'label' => 'Belastingzone', + ], + ], + +]; diff --git a/packages/admin/resources/lang/nl/taxzone.php b/packages/admin/resources/lang/nl/taxzone.php new file mode 100644 index 0000000000..d1aabe7b7d --- /dev/null +++ b/packages/admin/resources/lang/nl/taxzone.php @@ -0,0 +1,69 @@ + 'Belastingzone', + + 'plural_label' => 'Belastingzones', + + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'zone_type' => [ + 'label' => 'Zonetype', + ], + 'active' => [ + 'label' => 'Actief', + ], + 'default' => [ + 'label' => 'Standaard', + ], + ], + + 'form' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'zone_type' => [ + 'label' => 'Zonetype', + 'options' => [ + 'country' => 'Beperk tot Landen', + 'states' => 'Beperk tot Staten', + 'postcodes' => 'Beperk tot Postcodes', + ], + ], + 'price_display' => [ + 'label' => 'Prijsweergave', + 'options' => [ + 'include_tax' => 'Inclusief Belasting', + 'exclude_tax' => 'Exclusief Belasting', + ], + ], + 'active' => [ + 'label' => 'Actief', + ], + 'default' => [ + 'label' => 'Standaard', + ], + + 'zone_countries' => [ + 'label' => 'Landen', + ], + + 'zone_country' => [ + 'label' => 'Land', + ], + + 'zone_states' => [ + 'label' => 'Staten', + ], + + 'zone_postcodes' => [ + 'label' => 'Postcodes', + 'helper' => 'Plaats elke postcode op een nieuwe regel. Ondersteunt wildcards zoals NW*', + ], + + ], + +]; diff --git a/packages/admin/resources/lang/nl/user.php b/packages/admin/resources/lang/nl/user.php new file mode 100644 index 0000000000..ffe06b5994 --- /dev/null +++ b/packages/admin/resources/lang/nl/user.php @@ -0,0 +1,29 @@ + 'Gebruiker', + + 'plural_label' => 'Gebruikers', + + 'table' => [ + 'name' => [ + 'label' => 'Naam', + ], + 'email' => [ + 'label' => 'E-mail', + ], + ], + + 'form' => [ + 'email' => [ + 'label' => 'E-mail', + ], + 'password' => [ + 'label' => 'Nieuw Wachtwoord', + ], + 'password_confirmation' => [ + 'label' => 'Bevestig Nieuw Wachtwoord', + ], + ], +]; diff --git a/packages/admin/resources/lang/nl/widgets.php b/packages/admin/resources/lang/nl/widgets.php new file mode 100644 index 0000000000..fcfa019967 --- /dev/null +++ b/packages/admin/resources/lang/nl/widgets.php @@ -0,0 +1,118 @@ + [ + 'orders' => [ + 'order_stats_overview' => [ + 'stat_one' => [ + 'label' => 'Bestellingen vandaag', + 'increase' => ':percentage% toename ten opzichte van :count gisteren', + 'decrease' => ':percentage% afname ten opzichte van :count gisteren', + 'neutral' => 'Geen verandering ten opzichte van gisteren', + ], + 'stat_two' => [ + 'label' => 'Bestellingen afgelopen 7 dagen', + 'increase' => ':percentage% toename ten opzichte van :count vorige periode', + 'decrease' => ':percentage% afname ten opzichte van :count vorige periode', + 'neutral' => 'Geen verandering ten opzichte van vorige periode', + ], + 'stat_three' => [ + 'label' => 'Bestellingen afgelopen 30 dagen', + 'increase' => ':percentage% toename ten opzichte van :count vorige periode', + 'decrease' => ':percentage% afname ten opzichte van :count vorige periode', + 'neutral' => 'Geen verandering ten opzichte van vorige periode', + ], + 'stat_four' => [ + 'label' => 'Verkopen vandaag', + 'increase' => ':percentage% toename ten opzichte van :total gisteren', + 'decrease' => ':percentage% afname ten opzichte van :total gisteren', + 'neutral' => 'Geen verandering ten opzichte van gisteren', + ], + 'stat_five' => [ + 'label' => 'Verkopen afgelopen 7 dagen', + 'increase' => ':percentage% toename ten opzichte van :total vorige periode', + 'decrease' => ':percentage% afname ten opzichte van :total vorige periode', + 'neutral' => 'Geen verandering ten opzichte van vorige periode', + ], + 'stat_six' => [ + 'label' => 'Verkopen afgelopen 30 dagen', + 'increase' => ':percentage% toename ten opzichte van :total vorige periode', + 'decrease' => ':percentage% afname ten opzichte van :total vorige periode', + 'neutral' => 'Geen verandering ten opzichte van vorige periode', + ], + ], + 'order_totals_chart' => [ + 'heading' => 'Bestellingstotalen van het afgelopen jaar', + 'series_one' => [ + 'label' => 'Deze Periode', + ], + 'series_two' => [ + 'label' => 'Vorige Periode', + ], + 'yaxis' => [ + 'label' => 'Omzet :currency', + ], + ], + 'order_sales_chart' => [ + 'heading' => 'Bestellingen / Verkooprapport', + 'series_one' => [ + 'label' => 'Bestellingen', + ], + 'series_two' => [ + 'label' => 'Omzet', + ], + 'yaxis' => [ + 'series_one' => [ + 'label' => '# Bestellingen', + ], + 'series_two' => [ + 'label' => 'Totale Waarde', + ], + ], + ], + 'average_order_value' => [ + 'heading' => 'Gemiddelde Bestelwaarde', + ], + 'new_returning_customers' => [ + 'heading' => 'Nieuwe vs Terugkerende Klanten', + 'series_one' => [ + 'label' => 'Nieuwe Klanten', + ], + 'series_two' => [ + 'label' => 'Terugkerende Klanten', + ], + ], + 'popular_products' => [ + 'heading' => 'Bestverkochte producten (laatste 12 maanden)', + 'description' => 'Deze cijfers zijn gebaseerd op het aantal keren dat een product in een bestelling voorkomt, niet op de bestelde hoeveelheid.', + ], + 'latest_orders' => [ + 'heading' => 'Laatste bestellingen', + ], + ], + ], + 'customer' => [ + 'stats_overview' => [ + 'total_orders' => [ + 'label' => 'Totaal aantal bestellingen', + ], + 'avg_spend' => [ + 'label' => 'Gem. Uitgave', + ], + 'total_spend' => [ + 'label' => 'Totale Uitgave', + ], + ], + ], + 'variant_switcher' => [ + 'label' => 'Variant Wisselen', + 'table' => [ + 'sku' => [ + 'label' => 'SKU', + ], + 'values' => [ + 'label' => 'Waarden', + ], + ], + ], +]; diff --git a/packages/admin/src/Filament/Resources/CollectionGroupResource.php b/packages/admin/src/Filament/Resources/CollectionGroupResource.php index d96f76427d..d506b2184c 100644 --- a/packages/admin/src/Filament/Resources/CollectionGroupResource.php +++ b/packages/admin/src/Filament/Resources/CollectionGroupResource.php @@ -21,8 +21,6 @@ class CollectionGroupResource extends BaseResource protected static ?int $navigationSort = 3; - protected static ?string $navigationLabel = 'Collections'; - public static function getLabel(): string { return __('lunarpanel::collectiongroup.label'); diff --git a/packages/admin/src/Filament/Resources/CustomerResource/RelationManagers/OrdersRelationManager.php b/packages/admin/src/Filament/Resources/CustomerResource/RelationManagers/OrdersRelationManager.php index 5598f7863e..b01eea5116 100644 --- a/packages/admin/src/Filament/Resources/CustomerResource/RelationManagers/OrdersRelationManager.php +++ b/packages/admin/src/Filament/Resources/CustomerResource/RelationManagers/OrdersRelationManager.php @@ -5,6 +5,7 @@ use Filament\Tables; use Filament\Tables\Table; use Lunar\Admin\Filament\Resources\OrderResource; +use Lunar\Admin\Filament\Resources\OrderResource\Pages\ManageOrder; use Lunar\Admin\Support\RelationManagers\BaseRelationManager; use Lunar\Models\Order; @@ -18,7 +19,7 @@ public function getDefaultTable(Table $table): Table OrderResource::getTableColumns() )->actions([ Tables\Actions\Action::make('viewOrder') - ->url(fn (Order $record): string => route('filament.lunar.resources.orders.order', $record)), + ->url(fn (Order $record): string => ManageOrder::getUrl(['record' => $record])), ]); } } diff --git a/packages/admin/src/Filament/Resources/DiscountResource.php b/packages/admin/src/Filament/Resources/DiscountResource.php index 82b052e342..8eff546762 100644 --- a/packages/admin/src/Filament/Resources/DiscountResource.php +++ b/packages/admin/src/Filament/Resources/DiscountResource.php @@ -361,7 +361,8 @@ protected static function getTableColumns(): array \Lunar\Models\Discount::SCHEDULED => 'info', }), Tables\Columns\TextColumn::make('name') - ->label(__('lunarpanel::discount.table.name.label')), + ->label(__('lunarpanel::discount.table.name.label')) + ->searchable(), Tables\Columns\TextColumn::make('type') ->formatStateUsing(function ($state) { return (new $state)->getName(); diff --git a/packages/admin/src/Filament/Resources/OrderResource/Pages/EditOrder.php b/packages/admin/src/Filament/Resources/OrderResource/Pages/EditOrder.php index 7faee4a2f4..818581b64c 100644 --- a/packages/admin/src/Filament/Resources/OrderResource/Pages/EditOrder.php +++ b/packages/admin/src/Filament/Resources/OrderResource/Pages/EditOrder.php @@ -44,7 +44,7 @@ protected function getDefaultHeaderActions(): array return response()->streamDownload(function () { echo Pdf::loadView('lunarpanel::pdf.order', [ - 'order' => $this->record, + 'record' => $this->record, ])->stream(); }, name: "Order-{$this->record->reference}.pdf"); }), diff --git a/packages/admin/src/Filament/Resources/ProductResource.php b/packages/admin/src/Filament/Resources/ProductResource.php index 724c09a1a9..7627d533da 100644 --- a/packages/admin/src/Filament/Resources/ProductResource.php +++ b/packages/admin/src/Filament/Resources/ProductResource.php @@ -300,7 +300,8 @@ public static function getNameTableColumn(): Tables\Columns\Column ->attributeData() ->limitedTooltip() ->limit(50) - ->label(__('lunarpanel::product.table.name.label')); + ->label(__('lunarpanel::product.table.name.label')) + ->searchable(); } public static function getSkuTableColumn(): Tables\Columns\Column @@ -323,7 +324,8 @@ public static function getSkuTableColumn(): Tables\Columns\Column }) ->listWithLineBreaks() ->limitList(1) - ->toggleable(); + ->toggleable() + ->searchable(); } public static function getDefaultRelations(): array diff --git a/packages/admin/src/Filament/Resources/ProductResource/Pages/ListProducts.php b/packages/admin/src/Filament/Resources/ProductResource/Pages/ListProducts.php index f02e59b67f..f994e004ee 100644 --- a/packages/admin/src/Filament/Resources/ProductResource/Pages/ListProducts.php +++ b/packages/admin/src/Filament/Resources/ProductResource/Pages/ListProducts.php @@ -27,7 +27,7 @@ protected function getDefaultHeaderActions(): array static::createActionFormInputs() )->using( fn (array $data, string $model) => static::createRecord($data, $model) - )->successRedirectUrl(fn (Model $record): string => route('filament.lunar.resources.products.edit', [ + )->successRedirectUrl(fn (Model $record): string => ProductResource::getUrl('edit', [ 'record' => $record, ])), ]; diff --git a/packages/admin/src/Support/Forms/Components/Attributes.php b/packages/admin/src/Support/Forms/Components/Attributes.php index 8df4b49223..4f474aa802 100644 --- a/packages/admin/src/Support/Forms/Components/Attributes.php +++ b/packages/admin/src/Support/Forms/Components/Attributes.php @@ -61,7 +61,8 @@ protected function setUp(): void 'model' => $group, 'fields' => $attributes->groupBy('attribute_group_id')->get($group->id, []), ]; - }); + }) + ->filter(fn ($group) => count($group['fields'])); $groupComponents = []; @@ -86,7 +87,7 @@ protected function setUp(): void } foreach ($state as $key => $value) { - if (! $value instanceof \Lunar\Base\Fieldtype) { + if (! $value instanceof \Lunar\Base\FieldType) { continue; } diff --git a/packages/admin/src/Support/Resources/Pages/ManageUrlsRelatedRecords.php b/packages/admin/src/Support/Resources/Pages/ManageUrlsRelatedRecords.php index 3d8cc834d0..d644f000e1 100644 --- a/packages/admin/src/Support/Resources/Pages/ManageUrlsRelatedRecords.php +++ b/packages/admin/src/Support/Resources/Pages/ManageUrlsRelatedRecords.php @@ -55,7 +55,7 @@ public function form(Form $form): Form ignoreRecord: true, modifyRuleUsing: function (Unique $rule, callable $get) { return $rule - ->where('element_type', static::$model) + ->where('element_type', (new static::$model)->getMorphClass()) ->where('language_id', $get('language_id')); } ) diff --git a/packages/core/database/state/EnsureMediaCollectionsAreRenamed.php b/packages/core/database/state/EnsureMediaCollectionsAreRenamed.php index 9701b71553..3993a6bea0 100644 --- a/packages/core/database/state/EnsureMediaCollectionsAreRenamed.php +++ b/packages/core/database/state/EnsureMediaCollectionsAreRenamed.php @@ -35,7 +35,7 @@ protected function shouldRun() protected function getOutdatedMediaQuery() { return DB::table(app(config('media-library.media_model'))->getTable()) - ->whereIn('model_type', [Product::class, Collection::class, Brand::class]) + ->whereIn('model_type', [Product::morphName(), Collection::morphName(), Brand::morphName()]) ->where('collection_name', 'products'); } } diff --git a/packages/core/resources/lang/es/base.php b/packages/core/resources/lang/es/base.php new file mode 100644 index 0000000000..526e2863ca --- /dev/null +++ b/packages/core/resources/lang/es/base.php @@ -0,0 +1,9 @@ + [ + 'collection-titles' => [ + 'images' => 'Im谩genes', + ], + ], +]; diff --git a/packages/core/resources/lang/es/exceptions.php b/packages/core/resources/lang/es/exceptions.php new file mode 100644 index 0000000000..a0732874e7 --- /dev/null +++ b/packages/core/resources/lang/es/exceptions.php @@ -0,0 +1,21 @@ + 'El modelo ":class" no implementa la interfaz comprable.', + 'cart_line_id_mismatch' => 'Esta l铆nea del carrito no pertenece a este carrito.', + 'invalid_cart_line_quantity' => 'Se esperaba que la cantidad fuera al menos "1", se encontr贸 ":quantity".', + 'maximum_cart_line_quantity' => 'La cantidad no puede exceder :quantity.', + 'carts.invalid_action' => 'La acci贸n del carrito no es v谩lida.', + 'carts.shipping_missing' => 'Se requiere una direcci贸n de env铆o.', + 'carts.billing_missing' => 'Se requiere una direcci贸n de facturaci贸n.', + 'carts.billing_incomplete' => 'La direcci贸n de facturaci贸n est谩 incompleta.', + 'carts.order_exists' => 'Ya existe un pedido para este carrito.', + 'carts.shipping_option_missing' => 'Opci贸n de env铆o faltante.', + 'missing_currency_price' => 'No existe un precio para la moneda ":currency".', + 'minimum_quantity' => 'Debes agregar un m铆nimo de :quantity art铆culos.', + 'quantity_increment' => 'La cantidad :quantity debe ser en incrementos de :increment.', + 'fieldtype_missing' => 'El FieldType ":class" no existe.', + 'invalid_fieldtype' => 'La clase ":class" no implementa la interfaz FieldType.', + 'discounts.invalid_type' => 'La colecci贸n solo debe contener ":expected", se encontr贸 ":actual".', + 'disallow_multiple_cart_orders' => 'Los carritos solo pueden tener un pedido asociado.', +]; diff --git a/packages/core/resources/lang/nl/base.php b/packages/core/resources/lang/nl/base.php new file mode 100644 index 0000000000..9f681208d9 --- /dev/null +++ b/packages/core/resources/lang/nl/base.php @@ -0,0 +1,9 @@ + [ + 'collection-titles' => [ + 'images' => 'Afbeeldingen', + ], + ], +]; diff --git a/packages/core/resources/lang/nl/exceptions.php b/packages/core/resources/lang/nl/exceptions.php new file mode 100644 index 0000000000..3ca3a30950 --- /dev/null +++ b/packages/core/resources/lang/nl/exceptions.php @@ -0,0 +1,21 @@ + 'Het ":class" model implementeert de koopbare interface niet.', + 'cart_line_id_mismatch' => 'Deze winkelwagenregel behoort niet tot deze winkelwagen', + 'invalid_cart_line_quantity' => 'Verwachte hoeveelheid is minimaal "1", ":quantity" gevonden.', + 'maximum_cart_line_quantity' => 'Hoeveelheid mag niet meer zijn dan :quantity.', + 'carts.invalid_action' => 'De winkelwagenactie was ongeldig', + 'carts.shipping_missing' => 'Een verzendadres is vereist', + 'carts.billing_missing' => 'Een factuuradres is vereist', + 'carts.billing_incomplete' => 'Het factuuradres is onvolledig', + 'carts.order_exists' => 'Er bestaat al een bestelling voor deze winkelwagen', + 'carts.shipping_option_missing' => 'Ontbrekende verzendoptie', + 'missing_currency_price' => 'Er bestaat geen prijs voor valuta ":currency"', + 'minimum_quantity' => 'U moet minimaal :quantity items toevoegen.', + 'quantity_increment' => 'Hoeveelheid :quantity moet in stappen van :increment zijn', + 'fieldtype_missing' => 'FieldType ":class" bestaat niet', + 'invalid_fieldtype' => 'Klasse ":class" implementeert de FieldType interface niet.', + 'discounts.invalid_type' => 'Collectie moet alleen ":expected" bevatten, gevonden ":actual"', + 'disallow_multiple_cart_orders' => 'Winkelwagens kunnen slechts 茅茅n bestelling hebben.', +]; diff --git a/packages/core/src/DiscountTypes/AbstractDiscountType.php b/packages/core/src/DiscountTypes/AbstractDiscountType.php index 8e0d3305b5..868313bb49 100644 --- a/packages/core/src/DiscountTypes/AbstractDiscountType.php +++ b/packages/core/src/DiscountTypes/AbstractDiscountType.php @@ -64,7 +64,7 @@ protected function checkDiscountConditions(Cart $cart): bool $validCoupon = $cartCoupon ? ($cartCoupon === $conditionCoupon) : blank($conditionCoupon); - $minSpend = ($data['min_prices'][$cart->currency->code] ?? 0) / $cart->currency->factor; + $minSpend = (int) ($data['min_prices'][$cart->currency->code] ?? 0) / (int) $cart->currency->factor; $minSpend = (int) bcmul($minSpend, $cart->currency->factor); $lines = $this->getEligibleLines($cart); diff --git a/packages/core/src/DiscountTypes/AmountOff.php b/packages/core/src/DiscountTypes/AmountOff.php index 105bca64e9..a915a6f48d 100644 --- a/packages/core/src/DiscountTypes/AmountOff.php +++ b/packages/core/src/DiscountTypes/AmountOff.php @@ -224,7 +224,7 @@ protected function getEligibleLines(Cart $cart): \Illuminate\Support\Collection /** * Apply the percentage to the cart line. */ - private function applyPercentage(int $value, Cart $cart): Cart + private function applyPercentage(float $value, Cart $cart): Cart { $lines = $this->getEligibleLines($cart); diff --git a/packages/core/src/FieldTypes/Toggle.php b/packages/core/src/FieldTypes/Toggle.php index a229b16071..9949210133 100644 --- a/packages/core/src/FieldTypes/Toggle.php +++ b/packages/core/src/FieldTypes/Toggle.php @@ -26,7 +26,7 @@ public function jsonSerialize(): mixed /** * Create a new instance of Toggle field type. * - * @param string $value + * @param bool|string $value */ public function __construct($value = false) { diff --git a/packages/core/src/LunarServiceProvider.php b/packages/core/src/LunarServiceProvider.php index 7164d09715..d4df153a7d 100644 --- a/packages/core/src/LunarServiceProvider.php +++ b/packages/core/src/LunarServiceProvider.php @@ -95,6 +95,7 @@ class LunarServiceProvider extends ServiceProvider 'cart', 'cart_session', 'database', + 'discounts', 'media', 'orders', 'payments', diff --git a/packages/core/src/Observers/OrderLineObserver.php b/packages/core/src/Observers/OrderLineObserver.php index 967607dd53..af384a4281 100644 --- a/packages/core/src/Observers/OrderLineObserver.php +++ b/packages/core/src/Observers/OrderLineObserver.php @@ -32,8 +32,12 @@ public function creating(OrderLine $orderLine) */ public function updating(OrderLine $orderLine) { - if (! in_array(Purchasable::class, class_implements($orderLine->purchasable_type, true))) { - throw new NonPurchasableItemException($orderLine->purchasable_type); + $purchasableModel = class_exists($orderLine->purchasable_type) ? + $orderLine->purchasable_type : + Relation::getMorphedModel($orderLine->purchasable_type); + + if (! $purchasableModel || ! in_array(Purchasable::class, class_implements($purchasableModel, true))) { + throw new NonPurchasableItemException($purchasableModel); } } } diff --git a/packages/core/src/Pipelines/Cart/ApplyDiscounts.php b/packages/core/src/Pipelines/Cart/ApplyDiscounts.php index bf84f14e21..bd0570b132 100644 --- a/packages/core/src/Pipelines/Cart/ApplyDiscounts.php +++ b/packages/core/src/Pipelines/Cart/ApplyDiscounts.php @@ -11,7 +11,7 @@ final class ApplyDiscounts /** * Called just before cart totals are calculated. * - * @return void + * @return mixed */ public function handle(Cart $cart, Closure $next) { diff --git a/packages/core/src/Pipelines/Cart/ApplyShipping.php b/packages/core/src/Pipelines/Cart/ApplyShipping.php index da69179466..d516fc7adf 100644 --- a/packages/core/src/Pipelines/Cart/ApplyShipping.php +++ b/packages/core/src/Pipelines/Cart/ApplyShipping.php @@ -14,7 +14,7 @@ final class ApplyShipping /** * Called just before cart totals are calculated. * - * @return void + * @return mixed */ public function handle(Cart $cart, Closure $next) { diff --git a/packages/core/src/Pipelines/Cart/Calculate.php b/packages/core/src/Pipelines/Cart/Calculate.php index 353f519729..18c4520a31 100644 --- a/packages/core/src/Pipelines/Cart/Calculate.php +++ b/packages/core/src/Pipelines/Cart/Calculate.php @@ -11,7 +11,7 @@ class Calculate /** * Called just before cart totals are calculated. * - * @return void + * @return mixed */ public function handle(Cart $cart, Closure $next) { diff --git a/packages/core/src/Pipelines/Cart/CalculateLines.php b/packages/core/src/Pipelines/Cart/CalculateLines.php index 06599eb189..176b678cc9 100644 --- a/packages/core/src/Pipelines/Cart/CalculateLines.php +++ b/packages/core/src/Pipelines/Cart/CalculateLines.php @@ -12,7 +12,7 @@ class CalculateLines /** * Called just before cart totals are calculated. * - * @return void + * @return mixed */ public function handle(Cart $cart, Closure $next) { diff --git a/packages/core/src/Pipelines/Cart/CalculateTax.php b/packages/core/src/Pipelines/Cart/CalculateTax.php index 78890c7046..6927e071d2 100644 --- a/packages/core/src/Pipelines/Cart/CalculateTax.php +++ b/packages/core/src/Pipelines/Cart/CalculateTax.php @@ -15,7 +15,7 @@ class CalculateTax /** * Called just before cart totals are calculated. * - * @return void + * @return mixed */ public function handle(Cart $cart, Closure $next) { diff --git a/packages/core/src/Pipelines/Order/Creation/CleanUpOrderLines.php b/packages/core/src/Pipelines/Order/Creation/CleanUpOrderLines.php index 452697cfa4..0d6dcebbdb 100644 --- a/packages/core/src/Pipelines/Order/Creation/CleanUpOrderLines.php +++ b/packages/core/src/Pipelines/Order/Creation/CleanUpOrderLines.php @@ -8,7 +8,7 @@ class CleanUpOrderLines { /** - * @return Closure + * @return mixed */ public function handle(Order $order, Closure $next) { diff --git a/packages/core/src/Pipelines/Order/Creation/CreateOrderAddresses.php b/packages/core/src/Pipelines/Order/Creation/CreateOrderAddresses.php index b6b36ab243..c296933661 100644 --- a/packages/core/src/Pipelines/Order/Creation/CreateOrderAddresses.php +++ b/packages/core/src/Pipelines/Order/Creation/CreateOrderAddresses.php @@ -9,7 +9,7 @@ class CreateOrderAddresses { /** - * @return Closure + * @return mixed */ public function handle(Order $order, Closure $next) { diff --git a/packages/core/src/Pipelines/Order/Creation/CreateOrderLines.php b/packages/core/src/Pipelines/Order/Creation/CreateOrderLines.php index f1015e09c7..93400d5f62 100644 --- a/packages/core/src/Pipelines/Order/Creation/CreateOrderLines.php +++ b/packages/core/src/Pipelines/Order/Creation/CreateOrderLines.php @@ -9,7 +9,7 @@ class CreateOrderLines { /** - * @return Closure + * @return mixed */ public function handle(Order $order, Closure $next) { diff --git a/packages/core/src/Pipelines/Order/Creation/CreateShippingLine.php b/packages/core/src/Pipelines/Order/Creation/CreateShippingLine.php index a879de275d..234fdf3e86 100644 --- a/packages/core/src/Pipelines/Order/Creation/CreateShippingLine.php +++ b/packages/core/src/Pipelines/Order/Creation/CreateShippingLine.php @@ -10,7 +10,7 @@ class CreateShippingLine { /** - * @return Closure + * @return mixed */ public function handle(Order $order, Closure $next) { diff --git a/packages/core/src/Pipelines/Order/Creation/FillOrderFromCart.php b/packages/core/src/Pipelines/Order/Creation/FillOrderFromCart.php index e05dd673ab..4671eb15d7 100644 --- a/packages/core/src/Pipelines/Order/Creation/FillOrderFromCart.php +++ b/packages/core/src/Pipelines/Order/Creation/FillOrderFromCart.php @@ -10,7 +10,7 @@ class FillOrderFromCart { /** - * @return Closure + * @return mixed */ public function handle(Order $order, Closure $next) { diff --git a/packages/core/src/Pipelines/Order/Creation/MapDiscountBreakdown.php b/packages/core/src/Pipelines/Order/Creation/MapDiscountBreakdown.php index f4953c8fa2..fd92f7a6e5 100644 --- a/packages/core/src/Pipelines/Order/Creation/MapDiscountBreakdown.php +++ b/packages/core/src/Pipelines/Order/Creation/MapDiscountBreakdown.php @@ -8,7 +8,7 @@ class MapDiscountBreakdown { /** - * @return Closure + * @return mixed */ public function handle(Order $order, Closure $next) { diff --git a/packages/table-rate-shipping/resources/lang/es/plugin.php b/packages/table-rate-shipping/resources/lang/es/plugin.php new file mode 100644 index 0000000000..67e90b2b92 --- /dev/null +++ b/packages/table-rate-shipping/resources/lang/es/plugin.php @@ -0,0 +1,7 @@ + [ + 'group' => 'Env铆o', + ], +]; diff --git a/packages/table-rate-shipping/resources/lang/es/relationmanagers.php b/packages/table-rate-shipping/resources/lang/es/relationmanagers.php new file mode 100644 index 0000000000..5b4d6c6015 --- /dev/null +++ b/packages/table-rate-shipping/resources/lang/es/relationmanagers.php @@ -0,0 +1,77 @@ + [ + 'customer_groups' => [ + 'description' => 'Asocia grupos de clientes a este m茅todo de env铆o para determinar su disponibilidad.', + ], + ], + 'shipping_rates' => [ + 'title_plural' => 'Tarifas de Env铆o', + 'actions' => [ + 'create' => [ + 'label' => 'Crear Tarifa de Env铆o', + ], + ], + 'notices' => [ + 'prices_incl_tax' => 'Todos los precios incluyen impuestos, que se tendr谩n en cuenta al calcular el gasto m铆nimo.', + 'prices_excl_tax' => 'Todos los precios excluyen impuestos, el gasto m铆nimo se basar谩 en el subtotal del carrito.', + ], + 'form' => [ + 'shipping_method_id' => [ + 'label' => 'M茅todo de Env铆o', + ], + 'price' => [ + 'label' => 'Precio', + ], + 'prices' => [ + 'label' => 'Desglose de Precios', + 'repeater' => [ + 'customer_group_id' => [ + 'label' => 'Grupo de Clientes', + 'placeholder' => 'Cualquiera', + ], + 'currency_id' => [ + 'label' => 'Moneda', + ], + 'min_quantity' => [ + 'label' => 'Gasto M铆n.', + ], + 'price' => [ + 'label' => 'Precio', + ], + ], + ], + ], + 'table' => [ + 'shipping_method' => [ + 'label' => 'M茅todo de Env铆o', + ], + 'price' => [ + 'label' => 'Precio', + ], + 'price_breaks_count' => [ + 'label' => 'Desglose de Precios', + ], + ], + ], + 'exclusions' => [ + 'title_plural' => 'Exclusiones de Env铆o', + 'form' => [ + 'purchasable' => [ + 'label' => 'Producto', + ], + ], + 'actions' => [ + 'create' => [ + 'label' => 'Agregar lista de exclusi贸n de env铆o', + ], + 'attach' => [ + 'label' => 'Agregar lista de exclusi贸n', + ], + 'detach' => [ + 'label' => 'Eliminar', + ], + ], + ], +]; diff --git a/packages/table-rate-shipping/resources/lang/es/shippingexclusionlist.php b/packages/table-rate-shipping/resources/lang/es/shippingexclusionlist.php new file mode 100644 index 0000000000..47a1e13f82 --- /dev/null +++ b/packages/table-rate-shipping/resources/lang/es/shippingexclusionlist.php @@ -0,0 +1,19 @@ + 'Lista de Exclusi贸n de Env铆o', + 'label_plural' => 'Listas de Exclusi贸n de Env铆o', + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'exclusions_count' => [ + 'label' => 'N掳 Productos', + ], + ], +]; diff --git a/packages/table-rate-shipping/resources/lang/es/shippingmethod.php b/packages/table-rate-shipping/resources/lang/es/shippingmethod.php new file mode 100644 index 0000000000..b77269d1b7 --- /dev/null +++ b/packages/table-rate-shipping/resources/lang/es/shippingmethod.php @@ -0,0 +1,58 @@ + 'M茅todos de Env铆o', + 'label' => 'M茅todo de Env铆o', + 'form' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'description' => [ + 'label' => 'Descripci贸n', + ], + 'code' => [ + 'label' => 'C贸digo', + ], + 'cutoff' => [ + 'label' => 'Corte', + ], + 'charge_by' => [ + 'label' => 'Cargar Por', + 'options' => [ + 'cart_total' => 'Total del Carrito', + 'weight' => 'Peso', + ], + ], + 'driver' => [ + 'label' => 'Tipo', + 'options' => [ + 'ship-by' => 'Est谩ndar', + 'collection' => 'Recogida', + ], + ], + 'stock_available' => [ + 'label' => 'El stock de todos los art铆culos del carrito debe estar disponible', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'code' => [ + 'label' => 'C贸digo', + ], + 'driver' => [ + 'label' => 'Tipo', + 'options' => [ + 'ship-by' => 'Est谩ndar', + 'collection' => 'Recogida', + ], + ], + ], + 'pages' => [ + 'availability' => [ + 'label' => 'Disponibilidad', + 'customer_groups' => 'Este m茅todo de env铆o no est谩 disponible actualmente para todos los grupos de clientes.', + ], + ], +]; diff --git a/packages/table-rate-shipping/resources/lang/es/shippingzone.php b/packages/table-rate-shipping/resources/lang/es/shippingzone.php new file mode 100644 index 0000000000..8fd52fa774 --- /dev/null +++ b/packages/table-rate-shipping/resources/lang/es/shippingzone.php @@ -0,0 +1,50 @@ + 'Zona de Env铆o', + 'label_plural' => 'Zonas de Env铆o', + 'form' => [ + 'unrestricted' => [ + 'content' => 'Esta zona de env铆o no tiene restricciones y estar谩 disponible para todos los clientes al momento de pagar.', + ], + 'name' => [ + 'label' => 'Nombre', + ], + 'type' => [ + 'label' => 'Tipo', + 'options' => [ + 'unrestricted' => 'Sin Restricciones', + 'countries' => 'Limitar a Pa铆ses', + 'states' => 'Limitar a Estados / Provincias', + 'postcodes' => 'Limitar a C贸digos Postales', + ], + ], + 'country' => [ + 'label' => 'Pa铆s', + ], + 'states' => [ + 'label' => 'Estados', + ], + 'countries' => [ + 'label' => 'Pa铆ses', + ], + 'postcodes' => [ + 'label' => 'C贸digos Postales', + 'helper' => 'Lista cada c贸digo postal en una nueva l铆nea. Soporta comodines como NW*', + ], + ], + 'table' => [ + 'name' => [ + 'label' => 'Nombre', + ], + 'type' => [ + 'label' => 'Tipo', + 'options' => [ + 'unrestricted' => 'Sin Restricciones', + 'countries' => 'Limitar a Pa铆ses', + 'states' => 'Limitar a Estados / Provincias', + 'postcodes' => 'Limitar a C贸digos Postales', + ], + ], + ], +]; diff --git a/tests/core/Unit/DiscountTypes/AmountOffTest.php b/tests/core/Unit/DiscountTypes/AmountOffTest.php index 06e9a03b74..f7729fc83e 100644 --- a/tests/core/Unit/DiscountTypes/AmountOffTest.php +++ b/tests/core/Unit/DiscountTypes/AmountOffTest.php @@ -784,7 +784,16 @@ expect($lastLine->discountTotal->value)->toEqual(333); }); -test('can apply percentage discount', function () { +test('can apply percentage discount', function ( + string $coupon, + float $percentage, + int $discountTotalForOne, + int $taxTotalForOne, + int $totalForOne, + int $discountTotalForTwo, + int $taxTotalForTwo, + int $totalForTwo +) { $customerGroup = CustomerGroup::getDefault(); $channel = Channel::getDefault(); @@ -794,7 +803,7 @@ $cart = Cart::factory()->create([ 'channel_id' => $channel->id, 'currency_id' => $currency->id, - 'coupon_code' => '10PERCENTOFF', + 'coupon_code' => $coupon, ]); $purchasable = ProductVariant::factory()->create(); @@ -816,9 +825,9 @@ $discount = Discount::factory()->create([ 'type' => AmountOff::class, 'name' => 'Test Coupon', - 'coupon' => '10PERCENTOFF', + 'coupon' => $coupon, 'data' => [ - 'percentage' => 10, + 'percentage' => $percentage, 'fixed_value' => false, ], ]); @@ -843,9 +852,9 @@ $cart = $cart->calculate(); - expect($cart->discountTotal->value)->toEqual(100); - expect($cart->taxTotal->value)->toEqual(180); - expect($cart->total->value)->toEqual(1080); + expect($cart->discountTotal->value)->toEqual($discountTotalForOne); + expect($cart->taxTotal->value)->toEqual($taxTotalForOne); + expect($cart->total->value)->toEqual($totalForOne); $cart->lines()->delete(); @@ -857,10 +866,14 @@ $cart = $cart->refresh()->calculate(); - expect($cart->discountTotal->value)->toEqual(200); - expect($cart->taxTotal->value)->toEqual(360); - expect($cart->total->value)->toEqual(2160); -}); + expect($cart->discountTotal->value)->toEqual($discountTotalForTwo); + expect($cart->taxTotal->value)->toEqual($taxTotalForTwo); + expect($cart->total->value)->toEqual($totalForTwo); +})->with([ + '10% Discount' => ['10PERCENTOFF', 10, 100, 180, 1080, 200, 360, 2160], + '10.25% Discount' => ['10PT25PERCENTOFF', 10.25, 103, 179, 1076, 205, 359, 2154], + '10.5% Discount' => ['10PT5PERCENTOFF', 10.5, 105, 179, 1074, 210, 358, 2148], +]); test('can only same discount to line once', function () { $customerGroup = CustomerGroup::getDefault(); diff --git a/tests/core/Unit/FieldTypes/ToggleFieldTest.php b/tests/core/Unit/FieldTypes/ToggleFieldTest.php new file mode 100644 index 0000000000..629196cc25 --- /dev/null +++ b/tests/core/Unit/FieldTypes/ToggleFieldTest.php @@ -0,0 +1,24 @@ +setValue(false); + + expect($field->getValue())->toEqual(false); +}); + +test('can set value in constructor', function () { + $field = new Toggle(true); + + expect($field->getValue())->toEqual(true); +}); + +test('check it does not allow array', function () { + $this->expectException(FieldTypeException::class); + + new Toggle(['foo']); +});