feat: VivesPOS landing on Winter CMS 1.2 — theme + plugin + Dockerfile
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run

- Base: wintercms/winter branch 1.2 (full framework)
- Theme vivespos: Canvas 7 + Bootstrap 5 CDN, custom CSS
- Layout: deferred GTM/GA4 tracking, JSON-LD SoftwareApplication
- Partials: hero (offline-first), features, modes (offline/nube toggle),
  screenshots, pricing (3 planes), comparison, FAQ, CTA
- Plugin VivesPOS.Site with ContactForm
- Dockerfile: PHP 8.2 Apache, port 80, healthcheck
- Added winter/wn-pages, blog, sitemap, seo plugins
- Active theme set to vivespos
This commit is contained in:
2026-08-21 19:29:00 -06:00
commit 1f72193a64
3266 changed files with 531480 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Client-side Language Lines
|--------------------------------------------------------------------------
|
| These are messages made available to the client browser via JavaScript.
| To compile this file run: php artisan winter:util compile lang
|
*/
'markdowneditor' => [
'formatting' => 'Formatar',
'quote' => 'Quota',
'code' => 'Codi',
'header1' => 'Títol 1',
'header2' => 'Títol 2',
'header3' => 'Títol 3',
'header4' => 'Títol 4',
'header5' => 'Títol 5',
'header6' => 'Títol 6',
'bold' => 'Negreta',
'italic' => 'Cursiva',
'unorderedlist' => 'Llista desordenada',
'orderedlist' => 'Llista ordenada',
'video' => 'Vídeo',
'image' => 'Imatge',
'link' => 'Enllaç',
'horizontalrule' => 'Inserir línia horitzontal',
'fullscreen' => 'Pantalla completa',
'preview' => 'Previsualitzar',
],
'mediamanager' => [
'insert_link' => 'Inserir enllaç a mèdia',
'insert_image' => 'Inserir imatge de mèdia',
'insert_video' => 'Inserir vídeo de mèdia',
'insert_audio' => 'Inserir àudio de mèdia',
'invalid_file_empty_insert' => "Si us plau selecciona l'arxiu a enllaçar.",
'invalid_file_single_insert' => 'Si us plau selecciona un sol arxiu.',
'invalid_image_empty_insert' => 'Si us plau selecciona imatge(s) per inserir.',
'invalid_video_empty_insert' => 'Si us plau selecciona un arxiu de vídeo per inserir.',
'invalid_audio_empty_insert' => "Si us plau selecciona un arxiu d'àudio per inserir.",
],
'alert' => [
'confirm_button_text' => 'OK',
'cancel_button_text' => 'Cancel·lar',
'widget_remove_confirm' => 'Eliminar aquest widget?'
],
'datepicker' => [
'previousMonth' => 'Mes anterior',
'nextMonth' => 'Mes següent',
'months' => ['Gener', 'Febrer', 'Març', 'Abril', 'Maig', 'Juny', 'Juliol', 'Agost', 'Setembre', 'Octubre', 'Novembre', 'Desembre'],
'weekdays' => ['Diumenge', 'Dilluns', 'Dimarts', 'Dimecres', 'Dijous', 'Divendres', 'Dissabte'],
'weekdaysShort' => ['Dg', 'Dl', 'Dm', 'Dx', 'Dj', 'Dv', 'Ds']
],
'colorpicker' => [
'choose' => 'Ok',
],
'filter' => [
'group' => [
'all' => 'tots'
],
'dates' => [
'all' => 'tots',
'filter_button_text' => 'Filtrar',
'reset_button_text' => 'Reiniciar',
'date_placeholder' => 'Data',
'after_placeholder' => 'Després',
'before_placeholder' => 'Abans'
],
'numbers' => [
'all' => 'tots',
'filter_button_text' => 'Filtrar',
'reset_button_text' => 'Reiniciar',
'min_placeholder' => 'Mín',
'max_placeholder' => 'Màx'
]
],
'eventlog' => [
'show_stacktrace' => "Mostrar l'stacktrace",
'hide_stacktrace' => "Ocultar l'stacktrace",
'tabs' => [
'formatted' => 'Formatat',
'raw' => 'Cru',
],
'editor' => [
'title' => 'Editor de codi font',
'description' => "El teu sistema operatiu hauria d'estar configurat per escoltar un d'aquests esquemes d'URL.",
'openWith' => 'Obrir amb',
'remember_choice' => "Recordar l'opció seleccionada durant aquesta sessió",
'open' => 'Obrir',
'cancel' => 'Cancel·lar'
]
]
];

View File

@@ -0,0 +1,383 @@
<?php
return [
'app' => [
'name' => 'Winter CMS',
'tagline' => 'Tornant als bàsics'
],
'directory' => [
'create_fail' => 'No es pot crear el directori: :name'
],
'file' => [
'create_fail' => "No es pot crear l'arxiu: :name"
],
'combiner' => [
'not_found' => "L'arxiu de combinació ':name' no s'ha trobat."
],
'system' => [
'name' => 'Sistema',
'menu_label' => 'Sistema',
'categories' => [
'cms' => 'CMS',
'misc' => 'Misc',
'logs' => 'Registres',
'mail' => 'Correu',
'shop' => 'Botiga',
'team' => 'Equip',
'users' => 'Usuaris',
'system' => 'Sistema',
'social' => 'Social',
'backend' => 'Backend',
'events' => 'Esdeveniments',
'customers' => 'Clients',
'my_settings' => 'Les meves opcions',
'notifications' => 'Notificacions'
]
],
'theme' => [
'label' => 'Tema',
'unnamed' => 'Tema sense nom',
'name' => [
'label' => 'Nom del tema',
'help' => 'Anomena el tema amb el seu codi únic. Per exemple, Winter.Vanilla'
],
],
'themes' => [
'install' => 'Instal·lar temes',
'search' => 'cerca temes per instal·lar...',
'installed' => 'Temes instal·lats',
'no_themes' => 'No hi ha temes instal·lats des del mercat.',
'recommended' => 'Recomanats',
'remove_confirm' => 'Estàs segur que vols eliminar aquest tema?'
],
'plugin' => [
'label' => 'Plugin',
'unnamed' => 'Plugin sense nom',
'name' => [
'label' => 'Nom del plugin',
'help' => 'Anomena el tema amb el seu codi únic. Per exemple, Winter.Blog'
],
'by_author' => 'Per :name',
],
'plugins' => [
'manage' => 'Gestionar plugins',
'install' => 'Instal·lar plugins',
'install_products' => 'Instal·lar productes',
'search' => 'cerca plugins per instal·lar...',
'installed' => 'Plugins instal·lats',
'no_plugins' => 'No hi ha plugins instal·lats des del mercat.',
'recommended' => 'Recomanats',
'plugin_label' => 'Plugin',
'unknown_plugin' => "El plugin ha estat eliminat del sistema d'arxius.",
'select_label' => 'Seleccionar acció...',
'check_yes' => 'Sí',
'check_no' => 'No',
'unfrozen' => 'Actualitzacions habilitades',
'enabled' => 'Plugin habilitat',
'freeze' => 'deshabilitar actualitzacions per',
'unfreeze' => 'habilitar actualitzacions per',
'enable' => 'habilitar',
'disable' => 'deshabilitar',
'refresh' => 'reiniciar',
'remove' => 'eliminar',
'freeze_label' => 'Deshabilitar actualitzacions',
'unfreeze_label' => 'Habilitar actualitzacions',
'enable_label' => 'Habilitar plugins',
'disable_label' => 'Deshabilitar plugins',
'refresh_label' => 'Reiniciar dades del plugin',
'action_confirm' => 'Estàs segur de que vols :action aquests plugins?',
'freeze_success' => 'Actualitzacions deshabilitades pels plugins seleccionats.',
'unfreeze_success' => 'Actualitzacions habilitades pels plugins seleccionats.',
'enable_success' => 'Plugins seleccionats habilitats.',
'disable_success' => 'Plugins seleccionats deshabilitats.',
'refresh_confirm' => "Estàs segur que vols reiniciar els plugins seleccionats? Això reiniciarà les dades de cada plugin, restaurant-les a l'estat inicial.",
'refresh_success' => 'Plugins seleccionats reiniciats.',
'remove_confirm' => "Estàs segur que vols eliminar els plugins seleccionats? Aixo també n'eliminarà totes les dades associades.",
'remove_success' => 'Plugins seleccionats eliminats.',
],
'project' => [
'name' => 'Projecte',
'owner_label' => 'Autor',
'attach' => 'Vincular projecte',
'detach' => 'desvincular projecte',
'none' => 'Cap',
'id' => [
'label' => 'ID de projecte',
'help' => 'Com trobar la teva ID de projecte',
'missing' => 'Si us plau indica una ID de projecte.'
],
'detach_confirm' => 'Estàs segur que vols desvincular aquest projecte?',
'unbind_success' => 'El projecte ha estat desvinculat.'
],
'settings' => [
'menu_label' => 'Opcions',
'not_found' => "No s'han pogut trobar les opcions especificades.",
'missing_model' => "La pàgina d'opcions no té una definició de Model.",
'update_success' => 'Opcions de :name actualitzades',
'return' => 'Tornar a les opcions del sistema',
'search' => 'Cercar'
],
'mail' => [
'log_file' => 'Arxiu de registre',
'menu_label' => 'Configuració de correu',
'menu_description' => 'Gestionar la Configuració de correu.',
'general' => 'General',
'method' => 'Mètode de correu',
'sender_name' => 'Nom del remitent',
'sender_email' => 'Email del remitent',
'php_mail' => 'PHP mail',
'smtp' => 'SMTP',
'smtp_address' => 'Adreça SMTP',
'smtp_authorization' => 'Autorització SMTP requerida',
'smtp_authorization_comment' => 'Marca aquesta casella si el teu servidor SMTP server requereix autoritzaci.',
'smtp_username' => "Nom d'usuari",
'smtp_password' => 'Contrasenya',
'smtp_port' => 'Port SMTP',
'sendmail' => 'Sendmail',
'sendmail_path' => 'Ruta de sendmail',
'sendmail_path_comment' => "Si us plau especifica una ruta per l'executable de sendmail.",
],
'mail_templates' => [
'menu_label' => 'Plantilles de correu',
'menu_description' => "Modifica les plantilles de correu que s'envien als usuaris i administradors, gestiona disposicions de correu.",
'new_template' => 'Nova plantilla',
'new_layout' => 'Nova disposició',
'new_partial' => 'Nou parcial',
'template' => 'Plantilla',
'templates' => 'Plantilles',
'partial' => 'Parcial',
'partials' => 'Parcials',
'menu_layouts_label' => 'Disposicions de correu',
'menu_partials_label' => 'Parcials de correu',
'layout' => 'Disposició',
'layouts' => 'Disposicions',
'no_layout' => '-- Cap disposició --',
'name' => 'Nom',
'name_comment' => 'Nom únic utilitzat per referir-se a aquesta plantilla',
'code' => 'Codi',
'code_comment' => 'Codi únic utilitzat per referir-se a aquesta plantilla',
'subject' => 'Assumpte',
'subject_comment' => 'Assumpte del missatge',
'description' => 'Descripció',
'content_html' => 'HTML',
'content_css' => 'CSS',
'content_text' => 'Text pla',
'test_send' => 'Enviar missatge de prova',
'test_success' => 'Missatge de prova enviat.',
'test_confirm' => 'Enviar missatge de prova a :email. Continuar?',
'creating' => 'Creant plantilla...',
'creating_layout' => 'Creant disposició...',
'saving' => 'Guardant plantilla...',
'saving_layout' => 'Guardant disposició...',
'delete_confirm' => 'Eliminar aquesta plantilla?',
'delete_layout_confirm' => 'Eliminar aquesta disposició?',
'deleting' => 'Eliminant plantilla...',
'deleting_layout' => 'Eliminant disposició...',
'sending' => 'Enviant missatge de prova...',
'return' => 'Tornar a la llista de plantilles'
],
'mail_brand' => [
'menu_label' => 'Branding del correu',
'menu_description' => "Modificar els colors i l'aparença de les plantilles de correu.",
'page_title' => "Personalitzar l'aparença del correu",
'sample_template' => [
'heading' => 'Capçalera',
'paragraph' => 'Això és un paràgraf amb Lorem Ipsum i un enllaç. Cumque dicta <a>doloremque eaque</a>, enim error laboriosam pariatur possimus tenetur veritatis voluptas.',
'table' => [
'item' => 'Element',
'description' => 'Descripció',
'price' => 'Preu',
'centered' => 'Centrat',
'right_aligned' => 'Alineat a la dreta'
],
'buttons' => [
'primary' => 'Botó primari',
'positive' => 'Botó positiu',
'negative' => 'Botó negatiu',
],
'panel' => 'No és fantàstic aquest panell?',
'more' => 'Una mica més de text',
'promotion' => 'Codi de cupó: WINTER',
'subcopy' => "Això és un subcopy de l'email",
'thanks' => 'Gràcies'
],
'fields' => [
'_section_background' => 'Fons',
'body_bg' => 'Fons del cos',
'content_bg' => 'Fons del contingut',
'content_inner_bg' => 'Fons del contingut intern',
'_section_buttons' => 'Botons',
'button_text_color' => 'Color del text del botó',
'button_primary_bg' => 'Fons del botó primari',
'button_positive_bg' => 'Fons del botó positiu',
'button_negative_bg' => 'Fons del botó negatiu',
'_section_type' => 'Tipografia',
'header_color' => 'Color de la capçalera',
'heading_color' => 'Color dels títols',
'text_color' => 'Color del text',
'link_color' => 'Color dels enllaços',
'footer_color' => 'Color del peu',
'_section_borders' => 'Vores',
'body_border_color' => 'Color de la vora del cos',
'subcopy_border_color' => 'Color de la vora del subcopy',
'table_border_color' => 'Color de la vora de la taula',
'_section_components' => 'Components',
'panel_bg' => 'Fons del panell',
'promotion_bg' => 'Fons de la promoció',
'promotion_border_color' => 'Color de la vora de la promoció',
]
],
'install' => [
'project_label' => 'Vincular a projecte',
'plugin_label' => 'Instal·lar plugin',
'theme_label' => 'Instal·lar tema',
'missing_plugin_name' => 'Si us plau indica un nom de plugin per a instal·lar.',
'missing_theme_name' => 'Si us plau indica un nom de tema per a instal·lar.',
'install_completing' => "Finalitzant el procès d'instal·lació",
'install_success' => 'Plugin instal·lat correctament'
],
'updates' => [
'title' => 'Gestionar actualitzacions',
'name' => 'Actualització de software',
'menu_label' => 'Actualitzacions i plugins',
'menu_description' => 'Actualitzar el sistema, gestionar i instal·lar plugins i temes.',
'return_link' => 'Tornar a les actualitzacions de sistema',
'check_label' => 'Comprovar actualitzacions',
'retry_label' => 'Tornar-ho a intentar',
'plugin_name' => 'Nom',
'plugin_code' => 'Codi',
'plugin_description' => 'Descripció',
'plugin_version' => 'Versió',
'plugin_author' => 'Autor',
'plugin_not_found' => 'Plugin no trobat',
'core_current_build' => 'Versió actual',
'core_build' => 'Versió :build',
'core_build_help' => 'La última versió està disponible.',
'core_downloading' => "Descarregant arxius de l'aplicació",
'core_extracting' => "Desempaquetant arxius de l'aplicació",
'core_set_build' => 'Assignant número de versió',
'plugins' => 'Plugins',
'themes' => 'Temes',
'disabled' => 'Deshabilitats',
'plugin_downloading' => 'Descarregant plugin: :name',
'plugin_extracting' => 'Desempaquetant plugin: :name',
'plugin_version_none' => 'Nou plugin',
'plugin_current_version' => 'Versió actual',
'theme_new_install' => 'Instal·lació de nou tema.',
'theme_downloading' => 'Descarregant tema: :name',
'theme_extracting' => 'Desempaquetant tema: :name',
'update_label' => 'Actualitzar software',
'update_completing' => "Finalitzant el procès d'actualització",
'update_loading' => 'Carregant actualitzacions disponibles...',
'update_success' => "Procès d'actualització completat",
'update_failed_label' => 'Actualització fallida',
'force_label' => 'Forçar actualització',
'found' => [
'label' => "S'han trobat noves actualitzacions!",
'help' => "Clica 'Actualitzar software' per començar el procès d'actualització."
],
'none' => [
'label' => 'No hi ha actualitzacions',
'help' => "No s'han trobat noves actualitzacions."
],
'important_action' => [
'empty' => 'Seleccionar acció',
'confirm' => 'Confirmar actualització',
'skip' => 'Saltar aquesta actualització (només aquest cop)',
'ignore' => 'Saltar aquesta actualització (sempre)'
],
'important_action_required' => 'Acció requerida',
'important_view_guide' => "Veure la guia d'actualització",
'important_view_release_notes' => 'Veure les notes de la versió',
'important_alert_text' => 'Algunes actualitzacions necessiten la teva atenció.',
'details_title' => 'Detalls del plugin',
'details_view_homepage' => 'Veure pàgina web',
'details_readme' => 'Documentació',
'details_readme_missing' => "No s'ha proveït documentació.",
'details_changelog' => 'Registre de canvis',
'details_changelog_missing' => "No s'ha proveït registre de canvis.",
'details_upgrades' => "Guia d'actualització",
'details_upgrades_missing' => "No s'ha proveït guia d'actualització.",
'details_licence' => 'Llicència',
'details_licence_missing' => "No s'ha proveït llicència.",
'details_current_version' => 'Versió actual',
'details_author' => 'Autor'
],
'server' => [
'connect_error' => 'Error connectant al servidor.',
'response_not_found' => "El servidor d'actualitzacions no s'ha pogut trobat.",
'response_invalid' => 'Resposta invàlida del servidor.',
'response_empty' => 'Resposta buida del servidor.',
'file_error' => 'El servidor no ha pogut proporcionar el paquet.',
'file_corrupt' => "L'arxiu del servidor està corrupte."
],
'behavior' => [
'missing_property' => 'La classe :class ha de definir la propietat $:property utilitzada pel comportament :behavior.'
],
'config' => [
'not_found' => "No ha estat possible trobar l'arxiu de configuració :file definit per :location.",
'required' => "La configuració utilitzada a :location ha de proporcionar un valor ':property'."
],
'zip' => [
'extract_failed' => "No ha estat possible extreure el fitxer de core ':file'."
],
'event_log' => [
'hint' => "Aquest registre mostra una llista d'errors potencials que ocorren a l'aplicació, com ara excepcions o informació de depuració.",
'menu_label' => "Registre d'esdeveniments",
'menu_description' => 'Veure els missatges de registre del sistema amb les hores i detalls guardats.',
'empty_link' => "Buidar registre d'esdeveniments",
'empty_loading' => "Buidant registre d'esdeveniments...",
'empty_success' => "Registre d'esdeveniments buit",
'return_link' => "Tornar al registre d'esdeveniments",
'id' => 'ID',
'id_label' => "ID d'esdeveniment",
'created_at' => 'Data i hora',
'message' => 'Missatge',
'level' => 'Nivell',
'preview_title' => 'Esdeveniment'
],
'request_log' => [
'hint' => "Aquest registre mostra una llista de peticions de navegador que podrien requerir atenció. Per exemple, si un visitant obre una pàgina de CMS que no es pot trobar, es crea un registre amb l'estat 404.",
'menu_label' => 'Registre de peticions',
'menu_description' => 'Veure peticions incorrectes o redirigides, com ara Pàgina no trobada (404).',
'empty_link' => 'Buidar registre de peticions',
'empty_loading' => 'Buidant registre de peticions...',
'empty_success' => 'Registre de peticions buit',
'return_link' => 'Tornar al registre de peticions',
'id' => 'ID',
'id_label' => 'ID de registre',
'count' => 'Comptador',
'referer' => 'Referers',
'url' => 'URL',
'status_code' => 'Estat',
'preview_title' => 'Petició'
],
'permissions' => [
'name' => 'Sistema',
'manage_system_settings' => 'Gestionar opcions del sistema',
'manage_software_updates' => 'Gestionar actualitzacions de software',
'access_logs' => 'Veure registres del sistema',
'manage_mail_templates' => 'Gestionar plantilles de correu',
'manage_mail_settings' => 'Gestionar opcions de correu',
'manage_other_administrators' => 'Gestionar altres administradors',
'manage_preferences' => 'Gestionar preferències del panell',
'manage_editor' => "Gestionar preferències de l'editor de codi",
'view_the_dashboard' => "Veure l'escriptori",
'manage_branding' => 'Personalitzar el panell'
],
'log' => [
'menu_label' => 'Opcions de registre',
'menu_description' => "Especificar quines àrees s'han de registrar.",
'default_tab' => 'Registre',
'log_events' => 'Registrar esdeveniments del sistema',
'log_events_comment' => 'Guardar esdeveniments del sistema a la base de dades a més de al fitxer de registre.',
'log_requests' => 'Registrar peticions incorrectes',
'log_requests_comment' => 'Peticions de navegador que poden requerir atenció, com ara errors 404.',
'log_theme' => 'Registrar canvis del tema',
'log_theme_comment' => 'Quan es fa un canvi al tema utilitzant el panell.',
],
'media' => [
'invalid_path' => "Ruta d'arxiu invàlida: ':path'.",
'folder_size_items' => 'element(s)',
],
];

View File

@@ -0,0 +1,121 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| as the size rules. Feel free to tweak each of these messages here.
|
*/
'accepted' => ':attribute ha de ser acceptat.',
'active_url' => ':attribute no és una URL vàlida.',
'after' => ':attribute ha de ser una data posterior a :date.',
'after_or_equal' => ':attribute ha de ser una data posterior o igual a :date.',
'alpha' => ':attribute només pot contenir lletres.',
'alpha_dash' => ':attribute només pot contenir lletres, números, i guions.',
'alpha_num' => ':attribute només pot contenir lletres i números.',
'array' => ':attribute ha de ser un array.',
'before' => ':attribute ha de ser una data anterior a :date.',
'before_or_equal' => ':attribute ha de ser una data anterior o igual a :date.',
'between' => [
'numeric' => ":attribute ha d'estar entre :min i :max.",
'file' => ":attribute ha d'estar entre :min i :max kilobytes.",
'string' => ":attribute ha d'estar entre :min i :max caràcters.",
'array' => ":attribute ha de tenir entre :min i :max elements.",
],
'boolean' => 'El camp :attribute ha de ser cert o fals.',
'confirmed' => 'La confirmació de :attribute no quadra.',
'date' => ':attribute no és una data vàlida.',
'date_format' => ':attribute no quadra amb el format :format.',
'different' => ':attribute i :other han de ser diferents.',
'digits' => ':attribute ha de tenir :digits digits.',
'digits_between' => ':attribute ha de tenir entre :min i :max digits.',
'dimensions' => ":attribute té dimensions d'imatge invàlides.",
'distinct' => 'El camp :attribute té un valor duplicat.',
'email' => ":attribute ha de ser una adreça d'email vàlida.",
'exists' => 'El valor de :attribute seleccionat és invàlid.',
'file' => ':attribute ha de ser un arxiu.',
'filled' => 'El camp :attribute ha de tenir un valor.',
'image' => ':attribute ha de ser una imatge.',
'in' => 'El valor de :attribute és invàlid.',
'in_array' => 'El camp :attribute no existeix a :other.',
'integer' => ':attribute ha de ser un número enter.',
'ip' => ':attribute ha de ser una adreça IP vàlida.',
'ipv4' => ':attribute ha de ser una adreça IPv4 vàlida.',
'ipv6' => ':attribute ha de ser una adreça IPv6 vàlida.',
'json' => ':attribute ha de ser una cadena JSON vàlida.',
'max' => [
'numeric' => ':attribute no pot ser més gran de :max.',
'file' => ':attribute no pot ser més gran de :max kilobytes.',
'string' => ':attribute no pot ser més gran de :max caràcters.',
'array' => ':attribute no pot tenir més de :max elements.',
],
'mimes' => ':attribute ha de ser un arxiu del tipus: :values.',
'mimetypes' => ':attribute ha de ser un arxiu del tipus: :values.',
'min' => [
'numeric' => ':attribute ha de ser al menys :min.',
'file' => ':attribute ha de ser al menys de :min kilobytes.',
'string' => ':attribute ha de ser al menys de :min caràcters.',
'array' => ':attribute ha de tenir al menys :min elements.',
],
'not_in' => 'El valor de :attribute seleccionat és invàlid.',
'numeric' => ':attribute ha de ser un número.',
'present' => ":attribute ha d'estar present.",
'regex' => 'El format de :attribute és invàlid.',
'required' => 'El camp :attribute és obligatori.',
'required_if' => 'El camp :attribute és obligatori quan :other és :value.',
'required_unless' => 'El camp :attribute és obligatori a menys que :other és un de :values.',
'required_with' => 'El camp :attribute és obligatori quan :values està present.',
'required_with_all' => 'El camp :attribute és obligatori quan :values estan presents.',
'required_without' => 'El camp :attribute és obligatori quan :values no està present.',
'required_without_all' => 'El camp :attribute és obligatori quan cap de :values estan presents.',
'same' => 'El camp :attribute i :other han de ser iguals.',
'size' => [
'numeric' => ':attribute ha de ser :size.',
'file' => ':attribute ha de ser de :size kilobytes.',
'string' => ':attribute ha de ser de :size caràcters.',
'array' => ':attribute ha de tenir :size elements.',
],
'string' => ':attribute ha de ser una cadena de text.',
'timezone' => ':attribute ha de ser una zona vàlida.',
'unique' => ':attribute ha de ser únic.',
'uploaded' => ':attribute ha fallat al pujar.',
'url' => 'El format de :attribute és invàlid.',
/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
|
| Here you may specify custom validation messages for attributes using the
| convention "attribute.rule" to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/
'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
],
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/
'attributes' => [],
];