From 90439b3d5a71f9d5fde62c4ceb4964715f93666a Mon Sep 17 00:00:00 2001 From: Ricardo Gobbo de Souza Date: Tue, 18 Jul 2023 16:25:22 -0300 Subject: [PATCH 1/2] Add suporte laravel 10 and drop laravel 7 --- .gitattributes | 16 +++++++++++++++ .github/workflows/tests.yml | 16 ++++++++------- .gitignore | 8 +------- composer.json | 20 +++++++++---------- .../Middleware/HttpsProtocolMiddleware.php | 1 - tests/CustomValuesTest.php | 2 +- tests/TestCase.php | 4 +--- 7 files changed, 38 insertions(+), 29 deletions(-) diff --git a/.gitattributes b/.gitattributes index 6313b56..d46478e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,17 @@ * text=auto eol=lf + +*.blade.php diff=html +*.css diff=css +*.html diff=html +*.md diff=markdown +*.php diff=php + +/.github export-ignore +/tests export-ignore +.editorconfig export-ignore +.gitattributes export-ignore +.gitignore export-ignore +.styleci.yml export-ignore +.phpunit-watcher.yml export-ignor +README.md export-ignore +phpunit.xml.dist export-ignore diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 424b471..c868886 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -10,24 +10,26 @@ jobs: fail-fast: true matrix: os: [ubuntu-latest] - php: [7.3, 7.4, 8.0, 8.1] - laravel: [^7.0, ^8.0, ^9.0] + php: [7.4, 8.0, 8.1] + laravel: [^8.0, ^9.0, ^10.0] #stability: [prefer-lowest, prefer-stable] stability: [prefer-stable] exclude: - - php: 7.3 - laravel: 9 - php: 7.4 laravel: 9 + - php: 7.4 + laravel: 10 + - php: 8.0 + laravel: 10 name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }} steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.composer/cache/files key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }} @@ -46,4 +48,4 @@ jobs: run: vendor/bin/phpunit --verbose - name: Coverage - uses: codecov/codecov-action@v2 + uses: codecov/codecov-action@v3 diff --git a/.gitignore b/.gitignore index 57a9d9d..3833b89 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,4 @@ -vendor -composer.phar +/vendor composer.lock -.DS_Store -Thumbs.db -phpunit.xml clover.xml -.idea -.vscode .phpunit.result.cache diff --git a/composer.json b/composer.json index b91122f..4331c0c 100644 --- a/composer.json +++ b/composer.json @@ -21,18 +21,18 @@ } ], "require": { - "php": "^7.3|^8.0", - "datalogix/laravel-translation": "^1.1", - "datalogix/laravel-validation": "^1.3", - "illuminate/contracts": "^7.0|^8.0|^9.0", - "illuminate/database": "^7.0|^8.0|^9.0", - "illuminate/pagination": "^7.0|^8.0|^9.0", - "illuminate/support": "^7.0|^8.0|^9.0" + "php": "^7.4|^8.0", + "datalogix/laravel-translation": "^1.1|^2.0", + "datalogix/laravel-validation": "^1.3|^2.0", + "illuminate/contracts": "^8.0|^9.0|^10.0", + "illuminate/database": "^8.0|^9.0|^10.0", + "illuminate/pagination": "^8.0|^9.0|^10.0", + "illuminate/support": "^8.0|^9.0|^10.0" }, "require-dev": { - "graham-campbell/testbench": "^5.7", - "phpunit/phpunit": "^8.5|^9.5", - "spatie/phpunit-watcher": "^1.0" + "graham-campbell/testbench": "^6.0", + "phpunit/phpunit": "^9.5|^10.0", + "spatie/phpunit-watcher": "^1.23" }, "autoload": { "psr-4": { diff --git a/src/Http/Middleware/HttpsProtocolMiddleware.php b/src/Http/Middleware/HttpsProtocolMiddleware.php index 173fcd4..18cd084 100644 --- a/src/Http/Middleware/HttpsProtocolMiddleware.php +++ b/src/Http/Middleware/HttpsProtocolMiddleware.php @@ -10,7 +10,6 @@ class HttpsProtocolMiddleware * Handle an incoming request. * * @param \Illuminate\Http\Request $request - * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) diff --git a/tests/CustomValuesTest.php b/tests/CustomValuesTest.php index f05259c..3a870d8 100644 --- a/tests/CustomValuesTest.php +++ b/tests/CustomValuesTest.php @@ -12,7 +12,7 @@ class CustomValuesTest extends TestCase { - protected function getEnvironmentSetUp($app) + protected function getEnvironmentSetUp($app): void { $app->config->set('utils', [ 'model' => [ diff --git a/tests/TestCase.php b/tests/TestCase.php index ca08168..7dccddc 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -9,10 +9,8 @@ abstract class TestCase extends AbstractPackageTestCase { /** * Get the service provider class. - * - * @return string */ - protected function getServiceProviderClass() + protected static function getServiceProviderClass(): string { return UtilsServiceProvider::class; } From dcce25aace27cbf34a9cc5f79488d61113ad26c1 Mon Sep 17 00:00:00 2001 From: Ricardo Gobbo de Souza Date: Tue, 18 Jul 2023 16:25:45 -0300 Subject: [PATCH 2/2] Update translations --- lang/en/passwords.php | 4 +- lang/en/validation.php | 185 ++++++++++++++++++++------------------ lang/pt_BR/passwords.php | 4 +- lang/pt_BR/validation.php | 13 ++- 4 files changed, 112 insertions(+), 94 deletions(-) diff --git a/lang/en/passwords.php b/lang/en/passwords.php index 2345a56..f1223bd 100644 --- a/lang/en/passwords.php +++ b/lang/en/passwords.php @@ -13,8 +13,8 @@ | */ - 'reset' => 'Your password has been reset!', - 'sent' => 'We have emailed your password reset link!', + 'reset' => 'Your password has been reset.', + 'sent' => 'We have emailed your password reset link.', 'throttled' => 'Please wait before retrying.', 'token' => 'This password reset token is invalid.', 'user' => "We can't find a user with that email address.", diff --git a/lang/en/validation.php b/lang/en/validation.php index 985fb61..a6e722d 100644 --- a/lang/en/validation.php +++ b/lang/en/validation.php @@ -13,103 +13,111 @@ | */ - 'accepted' => 'The :attribute must be accepted.', - 'accepted_if' => 'The :attribute must be accepted when :other is :value.', - 'active_url' => 'The :attribute is not a valid URL.', - 'after' => 'The :attribute must be a date after :date.', - 'after_or_equal' => 'The :attribute must be a date after or equal to :date.', - 'alpha' => 'The :attribute must only contain letters.', - 'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.', - 'alpha_num' => 'The :attribute must only contain letters and numbers.', - 'array' => 'The :attribute must be an array.', - 'before' => 'The :attribute must be a date before :date.', - 'before_or_equal' => 'The :attribute must be a date before or equal to :date.', + 'accepted' => 'The :attribute field must be accepted.', + 'accepted_if' => 'The :attribute field must be accepted when :other is :value.', + 'active_url' => 'The :attribute field must be a valid URL.', + 'after' => 'The :attribute field must be a date after :date.', + 'after_or_equal' => 'The :attribute field must be a date after or equal to :date.', + 'alpha' => 'The :attribute field must only contain letters.', + 'alpha_dash' => 'The :attribute field must only contain letters, numbers, dashes, and underscores.', + 'alpha_num' => 'The :attribute field must only contain letters and numbers.', + 'array' => 'The :attribute field must be an array.', + 'ascii' => 'The :attribute field must only contain single-byte alphanumeric characters and symbols.', + 'before' => 'The :attribute field must be a date before :date.', + 'before_or_equal' => 'The :attribute field must be a date before or equal to :date.', 'between' => [ - 'array' => 'The :attribute must have between :min and :max items.', - 'file' => 'The :attribute must be between :min and :max kilobytes.', - 'numeric' => 'The :attribute must be between :min and :max.', - 'string' => 'The :attribute must be between :min and :max characters.', + 'array' => 'The :attribute field must have between :min and :max items.', + 'file' => 'The :attribute field must be between :min and :max kilobytes.', + 'numeric' => 'The :attribute field must be between :min and :max.', + 'string' => 'The :attribute field must be between :min and :max characters.', ], 'boolean' => 'The :attribute field must be true or false.', - 'confirmed' => 'The :attribute confirmation does not match.', + 'can' => 'The :attribute field contains an unauthorized value.', + 'confirmed' => 'The :attribute field confirmation does not match.', 'current_password' => 'The password is incorrect.', - 'date' => 'The :attribute is not a valid date.', - 'date_equals' => 'The :attribute must be a date equal to :date.', - 'date_format' => 'The :attribute does not match the format :format.', - 'declined' => 'The :attribute must be declined.', - 'declined_if' => 'The :attribute must be declined when :other is :value.', - 'different' => 'The :attribute and :other must be different.', - 'digits' => 'The :attribute must be :digits digits.', - 'digits_between' => 'The :attribute must be between :min and :max digits.', - 'dimensions' => 'The :attribute has invalid image dimensions.', + 'date' => 'The :attribute field must be a valid date.', + 'date_equals' => 'The :attribute field must be a date equal to :date.', + 'date_format' => 'The :attribute field must match the format :format.', + 'decimal' => 'The :attribute field must have :decimal decimal places.', + 'declined' => 'The :attribute field must be declined.', + 'declined_if' => 'The :attribute field must be declined when :other is :value.', + 'different' => 'The :attribute field and :other must be different.', + 'digits' => 'The :attribute field must be :digits digits.', + 'digits_between' => 'The :attribute field must be between :min and :max digits.', + 'dimensions' => 'The :attribute field has invalid image dimensions.', 'distinct' => 'The :attribute field has a duplicate value.', - 'doesnt_end_with' => 'The :attribute may not end with one of the following: :values.', - 'doesnt_start_with' => 'The :attribute may not start with one of the following: :values.', - 'email' => 'The :attribute must be a valid email address.', - 'ends_with' => 'The :attribute must end with one of the following: :values.', + 'doesnt_end_with' => 'The :attribute field must not end with one of the following: :values.', + 'doesnt_start_with' => 'The :attribute field must not start with one of the following: :values.', + 'email' => 'The :attribute field must be a valid email address.', + 'ends_with' => 'The :attribute field must end with one of the following: :values.', 'enum' => 'The selected :attribute is invalid.', 'exists' => 'The selected :attribute is invalid.', - 'file' => 'The :attribute must be a file.', + 'file' => 'The :attribute field must be a file.', 'filled' => 'The :attribute field must have a value.', 'gt' => [ - 'array' => 'The :attribute must have more than :value items.', - 'file' => 'The :attribute must be greater than :value kilobytes.', - 'numeric' => 'The :attribute must be greater than :value.', - 'string' => 'The :attribute must be greater than :value characters.', + 'array' => 'The :attribute field must have more than :value items.', + 'file' => 'The :attribute field must be greater than :value kilobytes.', + 'numeric' => 'The :attribute field must be greater than :value.', + 'string' => 'The :attribute field must be greater than :value characters.', ], 'gte' => [ - 'array' => 'The :attribute must have :value items or more.', - 'file' => 'The :attribute must be greater than or equal to :value kilobytes.', - 'numeric' => 'The :attribute must be greater than or equal to :value.', - 'string' => 'The :attribute must be greater than or equal to :value characters.', + 'array' => 'The :attribute field must have :value items or more.', + 'file' => 'The :attribute field must be greater than or equal to :value kilobytes.', + 'numeric' => 'The :attribute field must be greater than or equal to :value.', + 'string' => 'The :attribute field must be greater than or equal to :value characters.', ], - 'image' => 'The :attribute must be an image.', + 'image' => 'The :attribute field must be an image.', 'in' => 'The selected :attribute is invalid.', - 'in_array' => 'The :attribute field does not exist in :other.', - 'integer' => 'The :attribute must be an integer.', - 'ip' => 'The :attribute must be a valid IP address.', - 'ipv4' => 'The :attribute must be a valid IPv4 address.', - 'ipv6' => 'The :attribute must be a valid IPv6 address.', - 'json' => 'The :attribute must be a valid JSON string.', - 'lowercase' => 'The :attribute must be lowercase.', + 'in_array' => 'The :attribute field must exist in :other.', + 'integer' => 'The :attribute field must be an integer.', + 'ip' => 'The :attribute field must be a valid IP address.', + 'ipv4' => 'The :attribute field must be a valid IPv4 address.', + 'ipv6' => 'The :attribute field must be a valid IPv6 address.', + 'json' => 'The :attribute field must be a valid JSON string.', + 'lowercase' => 'The :attribute field must be lowercase.', 'lt' => [ - 'array' => 'The :attribute must have less than :value items.', - 'file' => 'The :attribute must be less than :value kilobytes.', - 'numeric' => 'The :attribute must be less than :value.', - 'string' => 'The :attribute must be less than :value characters.', + 'array' => 'The :attribute field must have less than :value items.', + 'file' => 'The :attribute field must be less than :value kilobytes.', + 'numeric' => 'The :attribute field must be less than :value.', + 'string' => 'The :attribute field must be less than :value characters.', ], 'lte' => [ - 'array' => 'The :attribute must not have more than :value items.', - 'file' => 'The :attribute must be less than or equal to :value kilobytes.', - 'numeric' => 'The :attribute must be less than or equal to :value.', - 'string' => 'The :attribute must be less than or equal to :value characters.', + 'array' => 'The :attribute field must not have more than :value items.', + 'file' => 'The :attribute field must be less than or equal to :value kilobytes.', + 'numeric' => 'The :attribute field must be less than or equal to :value.', + 'string' => 'The :attribute field must be less than or equal to :value characters.', ], - 'mac_address' => 'The :attribute must be a valid MAC address.', + 'mac_address' => 'The :attribute field must be a valid MAC address.', 'max' => [ - 'array' => 'The :attribute must not have more than :max items.', - 'file' => 'The :attribute must not be greater than :max kilobytes.', - 'numeric' => 'The :attribute must not be greater than :max.', - 'string' => 'The :attribute must not be greater than :max characters.', + 'array' => 'The :attribute field must not have more than :max items.', + 'file' => 'The :attribute field must not be greater than :max kilobytes.', + 'numeric' => 'The :attribute field must not be greater than :max.', + 'string' => 'The :attribute field must not be greater than :max characters.', ], - 'max_digits' => 'The :attribute must not have more than :max digits.', - 'mimes' => 'The :attribute must be a file of type: :values.', - 'mimetypes' => 'The :attribute must be a file of type: :values.', + 'max_digits' => 'The :attribute field must not have more than :max digits.', + 'mimes' => 'The :attribute field must be a file of type: :values.', + 'mimetypes' => 'The :attribute field must be a file of type: :values.', 'min' => [ - 'array' => 'The :attribute must have at least :min items.', - 'file' => 'The :attribute must be at least :min kilobytes.', - 'numeric' => 'The :attribute must be at least :min.', - 'string' => 'The :attribute must be at least :min characters.', + 'array' => 'The :attribute field must have at least :min items.', + 'file' => 'The :attribute field must be at least :min kilobytes.', + 'numeric' => 'The :attribute field must be at least :min.', + 'string' => 'The :attribute field must be at least :min characters.', ], - 'min_digits' => 'The :attribute must have at least :min digits.', - 'multiple_of' => 'The :attribute must be a multiple of :value.', + 'min_digits' => 'The :attribute field must have at least :min digits.', + 'missing' => 'The :attribute field must be missing.', + 'missing_if' => 'The :attribute field must be missing when :other is :value.', + 'missing_unless' => 'The :attribute field must be missing unless :other is :value.', + 'missing_with' => 'The :attribute field must be missing when :values is present.', + 'missing_with_all' => 'The :attribute field must be missing when :values are present.', + 'multiple_of' => 'The :attribute field must be a multiple of :value.', 'not_in' => 'The selected :attribute is invalid.', - 'not_regex' => 'The :attribute format is invalid.', - 'numeric' => 'The :attribute must be a number.', + 'not_regex' => 'The :attribute field format is invalid.', + 'numeric' => 'The :attribute field must be a number.', 'password' => [ - 'letters' => 'The :attribute must contain at least one letter.', - 'mixed' => 'The :attribute must contain at least one uppercase and one lowercase letter.', - 'numbers' => 'The :attribute must contain at least one number.', - 'symbols' => 'The :attribute must contain at least one symbol.', + 'letters' => 'The :attribute field must contain at least one letter.', + 'mixed' => 'The :attribute field must contain at least one uppercase and one lowercase letter.', + 'numbers' => 'The :attribute field must contain at least one number.', + 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], 'present' => 'The :attribute field must be present.', @@ -117,7 +125,7 @@ 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.', 'prohibits' => 'The :attribute field prohibits :other from being present.', - 'regex' => 'The :attribute format is invalid.', + 'regex' => 'The :attribute field format is invalid.', 'required' => 'The :attribute field is required.', 'required_array_keys' => 'The :attribute field must contain entries for: :values.', 'required_if' => 'The :attribute field is required when :other is :value.', @@ -127,21 +135,22 @@ 'required_with_all' => 'The :attribute field is required when :values are present.', 'required_without' => 'The :attribute field is required when :values is not present.', 'required_without_all' => 'The :attribute field is required when none of :values are present.', - 'same' => 'The :attribute and :other must match.', + 'same' => 'The :attribute field must match :other.', 'size' => [ - 'array' => 'The :attribute must contain :size items.', - 'file' => 'The :attribute must be :size kilobytes.', - 'numeric' => 'The :attribute must be :size.', - 'string' => 'The :attribute must be :size characters.', + 'array' => 'The :attribute field must contain :size items.', + 'file' => 'The :attribute field must be :size kilobytes.', + 'numeric' => 'The :attribute field must be :size.', + 'string' => 'The :attribute field must be :size characters.', ], - 'starts_with' => 'The :attribute must start with one of the following: :values.', - 'string' => 'The :attribute must be a string.', - 'timezone' => 'The :attribute must be a valid timezone.', + 'starts_with' => 'The :attribute field must start with one of the following: :values.', + 'string' => 'The :attribute field must be a string.', + 'timezone' => 'The :attribute field must be a valid timezone.', 'unique' => 'The :attribute has already been taken.', 'uploaded' => 'The :attribute failed to upload.', - 'uppercase' => 'The :attribute must be uppercase.', - 'url' => 'The :attribute must be a valid URL.', - 'uuid' => 'The :attribute must be a valid UUID.', + 'uppercase' => 'The :attribute field must be uppercase.', + 'url' => 'The :attribute field must be a valid URL.', + 'ulid' => 'The :attribute field must be a valid ULID.', + 'uuid' => 'The :attribute field must be a valid UUID.', /* |-------------------------------------------------------------------------- @@ -183,7 +192,7 @@ 'currency_code' => 'The :attribute must be a valid currency code.', //'date' => 'The :attribute must be a valid date.', 'date_time' => 'The :attribute must be a valid date and time.', - 'decimal' => 'The :attribute must have :value decimals.', + //'decimal' => 'The :attribute must have :value decimals.', 'digit' => 'The :attribute must contain only digits.', 'directory' => 'The :attribute must be a directory.', 'domain' => 'The :attribute must be a valid domain.', @@ -257,7 +266,7 @@ 'object_type' => 'The :attribute must be an object.', 'odd' => 'The :attribute must be an odd number.', 'one_of' => 'The :attribute must pass only one validation.', - 'optional' => 'The :attribute must be optional.', + 'optional' => 'The :attribute must be optional.', 'perfect_square' => 'The :attribute must be a perfect square.', 'pesel' => 'The :attribute must be a valid PESEL.', 'phone' => 'The :attribute must be valid phone number.', diff --git a/lang/pt_BR/passwords.php b/lang/pt_BR/passwords.php index d88efbe..18251b7 100644 --- a/lang/pt_BR/passwords.php +++ b/lang/pt_BR/passwords.php @@ -13,8 +13,8 @@ | */ - 'reset' => 'Sua senha foi redefinida!', - 'sent' => 'Enviamos seu link de redefinição de senha por e-mail!', + 'reset' => 'Sua senha foi redefinida.', + 'sent' => 'Enviamos seu link de redefinição de senha por e-mail.', 'throttled' => 'Aguarde antes de tentar novamente.', 'token' => 'Este token de redefinição de senha é inválido.', 'user' => 'Não encontramos um usuário com esse endereço de e-mail.', diff --git a/lang/pt_BR/validation.php b/lang/pt_BR/validation.php index 3c92cd1..596a54f 100644 --- a/lang/pt_BR/validation.php +++ b/lang/pt_BR/validation.php @@ -22,6 +22,7 @@ 'alpha_dash' => 'O campo :attribute deve conter apenas letras, números, traços e sublinhados.', 'alpha_num' => 'O campo :attribute deve conter apenas letras e números.', 'array' => 'O campo :attribute deve ser uma matriz.', + 'ascii' => 'O campo :attribute deve conter apenas caracteres alfanuméricos de byte único e símbolos.', 'before' => 'O campo :attribute deve ser uma data anterior a :date.', 'before_or_equal' => 'O campo :attribute deve ser uma data anterior ou igual a :date.', 'between' => [ @@ -31,11 +32,13 @@ 'string' => 'O campo :attribute deve ter entre :min e :max caracteres.', ], 'boolean' => 'O campo :attribute deve ser verdadeiro ou falso.', + 'can' => 'O campo :attribute contém um valor não autorizado.', 'confirmed' => 'O campo :attribute de confirmação não corresponde.', 'current_password' => 'A senha está incorreta.', 'date' => 'O campo :attribute deve ser uma data válida.', 'date_equals' => 'O campo :attribute deve ser uma data igual a :date.', 'date_format' => 'O campo :attribute não corresponde ao formato :format.', + 'decimal' => 'O campo :attribute deve ter :decimal casas decimais.', 'declined' => 'O campo :attribute deve ser recusado.', 'declined_if' => 'O campo :attribute deve ser recusado quando :other for :value.', 'different' => 'O campo :attribute e o :other devem ser diferentes.', @@ -101,6 +104,11 @@ 'string' => 'O campo :attribute deve ter pelo menos :min caracteres.', ], 'min_digits' => 'O campo :attribute deve ter pelo menos :min dígitos.', + 'missing' => 'O campo :attribute deve estar faltando.', + 'missing_if' => 'O campo :attribute deve estar ausente quando :other for :value.', + 'missing_unless' => 'O campo :attribute deve estar ausente, a menos que :other seja :value.', + 'missing_with' => 'O campo :attribute deve estar ausente quando :values estiver presente.', + 'missing_with_all' => 'O campo :attribute deve estar ausente quando :values estiverem presente.', 'multiple_of' => 'O campo :attribute deve ser um múltiplo de :value', 'not_in' => 'O campo :attribute selecionado é inválido.', 'not_regex' => 'O campo :attribute tem um formato inválido.', @@ -141,6 +149,7 @@ 'uploaded' => 'O campo :attribute falhou ao carregar.', 'uppercase' => 'O campo :attribute deve conter apenas caracteres maiúsculos.', 'url' => 'O campo :attribute deve ser uma URL válida.', + 'ulid' => 'O campo :attribute deve ser um ULID válido.', 'uuid' => 'O campo :attribute deve ser um UUID válido.', /* @@ -183,7 +192,7 @@ 'currency_code' => 'O campo :attribute deve ser um código de moeda válido.', //'date' => 'O campo :attribute deve ser uma data válida.', 'date_time' => 'O campo :attribute deve ser uma data e hora válida.', - 'decimal' => 'O campo :attribute deve ter :value decimais.', + //'decimal' => 'O campo :attribute deve ter :value decimais.', 'digit' => 'O campo :attribute deve conter apenas dígitos.', 'directory' => 'O campo :attribute deve ser um diretório.', 'domain' => 'O campo :attribute deve ser um domínio válido.', @@ -257,7 +266,7 @@ 'object_type' => 'O campo :attribute deve ser um objeto.', 'odd' => 'O campo :attribute deve ser um número impar.', 'one_of' => 'O campo :attribute deve passar em apenas uma validação.', - 'optional' => 'O campo :attribute deve ser opcinal.', + 'optional' => 'O campo :attribute deve ser opcinal.', 'perfect_square' => 'O campo :attribute deve ser um quadrado perfeito.', 'pesel' => 'O campo :attribute deve ser um PESEL válido.', 'phone' => 'O campo :attribute deve ser número de telefone válido.',