Initial commit

This commit is contained in:
Ronald Huynen
2026-03-23 21:37:59 +01:00
commit 2547717edb
2193 changed files with 972171 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
<?php
declare(strict_types=1);
use PhpCsFixer\Config;
use PhpCsFixer\Finder;
use PhpCsFixer\Runner\Parallel\ParallelConfigFactory;
return (new Config())
->setParallelConfig(ParallelConfigFactory::detect()) // @TODO 4.0 no need to call this manually
->setRiskyAllowed(false)
->setRules([
'@auto' => true
])
// 💡 by default, Fixer looks for `*.php` files excluding `./vendor/` - here, you can groom this config
->setFinder(
(new Finder())
// 💡 root folder to check
->in(__DIR__)
// 💡 additional files, eg bin entry file
// ->append([__DIR__.'/bin-entry-file'])
// 💡 folders to exclude, if any
// ->exclude([/* ... */])
// 💡 path patterns to exclude, if any
// ->notPath([/* ... */])
// 💡 extra configs
// ->ignoreDotFiles(false) // true by default in v3, false in v4 or future mode
// ->ignoreVCS(true) // true by default
)
;

View File

@@ -0,0 +1,10 @@
<?php
// resources/lang/en/mail.php
return [
'new_message_subject' => 'You have a new chat message',
'unknown_sender' => 'someone',
'user' => 'another Timebanker',
'group_conversation' => 'a group conversation',
];

View File

@@ -0,0 +1,153 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Messages Language Lines
|--------------------------------------------------------------------------
|
| Messages that can be addressed by variables.
| Useful to translate fetched strings from the database.
| Usage:
| $language = 'Dutch';
| __('messages.' . $language)
|
*/
// Platform-specific translations - now dynamic via config/timebank-cc.php
// These reference the platform_translations config for easy customization
'platform_name' => platform_name(),
'platform_name_short' => platform_name_short(),
'platform_slogan' => platform_slogan(),
'platform_user' => platform_user(),
'platform_users' => platform_users(),
'platform_principles' => platform_principles(),
'date_at_time' => ':date at :time hours',
'hour_abbrevation' => 'hr.',
//LoginSuccessful.php
'login_success' => 'Hello :name, welcome back!',
// to-account.blade.php
'personal_account' => 'Personal',
'gift_account' => 'Gift',
'personal project_account' => 'Personal project',
'organization_account' => 'Organization',
'donation_account' => 'Donation',
'community_account' => 'Community',
'banking system_account' => 'Banking system',
'debit_account' => 'Debit',
'English' => 'English',
'Dutch' => 'Dutch',
'Spanish' => 'Spanish',
'French' => 'French',
'German' => 'German',
'en' => 'English',
'nl' => 'Dutch',
'es' => 'Spanish',
'fr' => 'French',
'de' => 'German',
'view_in_language' => 'View in :lang',
'in_language' => 'in :lang',
'now_in_language' => 'now in :lang',
'in_English' => 'in English',
'in_Dutch' => 'in Dutch',
'in_French' => 'in French',
'in_Spanish' => 'in Spanish',
'in_German' => 'in German',
'good' => 'good',
'limited' => 'limited',
'Your_profile_has_received_a_star' => 'Your profile received a star',
'Your_profile_has_received_a_Star' => 'Your profile received a star',
'Reservation_confirmation' => 'Reservation confirmation',
'Reservation_cancelled' => 'Reservation cancelled',
'Reservation_update' => 'Reservation update',
'Payment_received_from' => 'Payment received from :name',
'update' => 'update',
'Your_profile_has_been_deleted' => 'Your profile has been deleted',
'new_tag_added' => 'New tag added',
'profile_link_attached_subject' => 'Your profile has been linked',
'profile_link_detached_subject' => 'Your profile has been unlinked',
// tags/manage.blade.php
'confirm_input' => 'Type "agree" to confirm the update',
'confirm_input_string' => 'agree',
// notification.blade.php
'email_of_profile_has_been_verified' => 'The email of :profile_name has been verified successfully',
// pay.blade.php
'pay_limit_error_budget_from' => 'Sorry, your balance is too low for this transfer. Your balance may not go below :limitMinFrom. Maximum transfer amount possible: :transferBudgetFrom.',
'pay_limit_error_budget_from_and_to' => 'Sorry, your balance is too low for this transfer. Your balance may not go below :limitMinFrom. Additionally, this would also exceed the maximum balance of the recipient account. Maximum transfer amount possible: :transferBudgetTo.',
'pay_limit_error_budget_from_and_to_without_budget_to' => 'Sorry, your balance is too low for this transfer. Your balance may not go below :limitMinFrom. Additionally, this would exceed the maximum balance of the recipient account.',
'pay_limit_error_budget_to' => 'Sorry, this transfer would exceed the maximum balance of the recipient account. Maximum transfer amount possible: :transferBudgetTo.',
'pay_limit_error_budget_to_without_budget_to' => 'Sorry, this transfer would exceed the maximum balance of the recipient account. Please contact :toHolderName to discuss options.',
'pay_chat_message' => 'Hello, I just transferred :amount to your :account_name bank account',
'payment' => [
'success' => ':amount was paid to the :account_name account of :holder_name.<br /><br /><a class="underline font-semibold" href=":transaction_url">Show Transaction # :transaction_id</a>',
'failed' => 'Sorry, we have an error: this transaction could not be saved!<br /><br />Our team has been notified. Please try again later.<br /><br />Error: :error',
'qr_statement' => 'This link is only accessible for <span class="font-semibold">:from_profile</span> and <span class="font-semibold">:to_profile</span>.<br /> Login to :app_url to verify this transaction.', ],
// pay.blade.php
'Transaction type is required' => 'Transaction type is required',
// TransactionController.php
'transaction_controller_chat_message' => 'Hello, an amount of :amount has just been transferred from my account to your :account_name account',
// transaction-table.php
'transactions_found' => '{0} No transactions found|{1} :count transaction found|[2,*] :count transactions found',
// contacts/show.blade.php
'contacts_found' => '{0} No contacts found|{1} :count contact found|[2,*] :count contacts found',
// search/show.blade.php
'search_showing_top' => 'Only the top :shown results out of :total are shown for <span class="font-semibold">:term</span>.',
'search_results_out_of' => ':shown results for <span class="font-semibold">:term</span>.',
'search_single_result' => '1 result for <span class="font-semibold">:term</span>.',
'search_no_result' => 'Sorry, no results for <span class="font-semibold">:term</span>. <span class="font-normal">Please search again.</span>.',
//online-reacted-profiles.blade.php
'profiles_online' => '{0} No profiles are online|{1} :count profile is now online|[2,*] :count profiles are now online',
'bookmark_contacts_online' => '{0} None of your saved contacts are online|{1} :count of your saved contacts is now online|[2,*] :count of your saved contacts are now online',
'star_contacts_online' => '{0} None of your favorite contacts are online|{1} :count of your favorite contacts is now online|[2,*] :count of your favorite contacts are now online',
'reactions_contacts_online' => '{0} None of your contacts are online|{1} :count of your contacts is now online|[2,*] :count of your contacts are now online',
// reports/pdf.blade.php
'report' => [
'interest_info' => 'No interest is accrued or paid on ' . platform_name() . ' Hours.',
'disclaimer' => platform_name() . ' Hours are exclusively for the exchange of services (for the worked time) and are never redeemable for traditional currency, cash, or goods.',
'return_ratio_info' => 'Reciprocity rate: the share of your Hours that were also returned by the same people you helped during this period.',
'page_numbering' => 'Page :current of :total',
],
//mailings/manage.blade.php
'mailings' => [
'recipients_info' => [
'local_newsletter' => 'This mailing will be sent to the selected profiles who have subscribed to local newsletters.',
'general_newsletter' => 'This newsletter will be sent to the selected profiles who have subscribed to general newsletters.',
'system_message' => 'This system message will be sent to the selected profiles who have subscribed to system messages.',
'location_filtering_active' => 'Location filtering is active.',
'no_type_selected' => 'Please select a mailing type to see estimated recipients.',
],
'test_mail' => [
'success_title' => 'Test emails sent successfully!',
'success_message' => ':count email(s) sent to: :email',
'success_languages' => 'Languages: :languages',
'error_title' => 'Failed to Send test mailing mail',
'error_recipient' => 'Recipient: :email',
'error_message' => 'Error: :error',
],
],
// posts/manage.blade.php
'posts' => [
'transaction_types' => [
'work' => 'Work transaction',
'gift' => 'Pay what you like',
'donation' => 'Donation based',
],
'based_on_quantity' => 'based on :nr participants',
],
// WireChat disappearing messages
'wirechat' => [
'messages_deleted_after' => 'Messages deleted after :days days.',
'keep_messages_info' => 'You can mark important messages to keep them using the message menu (three dots). Kept messages will be preserved for',
'keep_messages_permanently' => 'You can mark important messages to keep them permanently using the message menu (three dots).',
'duration' => [
'year' => '{1} :count year|[2,*] :count years',
'month' => '{1} :count month|[2,*] :count months',
'day' => '{1} :count day|[2,*] :count days',
'hour' => '{1} :count hour|[2,*] :count hours',
'minute' => '{1} :count minute|[2,*] :count minutes',
'second' => '{1} :count second|[2,*] :count seconds',
],
],
'profile_edited_by_admin_subject' => 'Your profile has been updated',
'verify_email_subject' => 'Verify your email address',
];

View File

@@ -0,0 +1,17 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Pagination Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the paginator library to build
| the simple pagination links. You are free to change them to anything
| you want to customize your views to better match your application.
|
*/
'previous' => '&laquo; Previous',
'next' => 'Next &raquo;',
];

View File

@@ -0,0 +1,20 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Password Reset Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are the default lines which match reasons
| that are given by the password broker for a password update attempt
| has failed, such as for an invalid token or invalid new password.
|
*/
'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.",
];

View File

@@ -0,0 +1,105 @@
<?php
/*
|--------------------------------------------------------------------------
| Localized routes to be used with mcamara/laravel-localization
|--------------------------------------------------------------------------
|
| You may translate your routes. For example, http://url/en/about and http://url/es/acerca
| (acerca is about in spanish) or http://url/en/article/important-article and
| http://url/es/articulo/important-article (article is articulo in spanish) would
| be redirected to the same controller/view as follows:
| It is necessary that at least the localize middleware in loaded in your
| Route::group middleware (See installation instruction).
|
| For each language, add a routes.php into resources/lang/[**]/routes.php folder.
| The file contains an array with all translatable routes.
|
*/
return [
"welcome" => "welcome",
"goodbye-deleted-user" => "goodbye",
"main" => "main-page",
"pay" => "pay",
'pay-to-name' => 'pay/{name}',
'pay-amount-to-name' => 'pay/{hours}/{minutes}/to/{name}',
'pay-amount-to-name-description' => 'pay/{hours}/{minutes}/to/{name}/description/{description}',
'transactions' => 'transactions',
'statement' => 'statement/{transactionId}',
'contacts' => 'contacts',
'reports' => 'reports',
'posts.manage' => 'posts/manage',
'post.show' => 'post/{id}',
'call.show' => 'call/{id}',
'calls.manage' => 'calls/manage',
'post.show_international' => 'post/{id}',
'post.show_by_slug' => 'post/{slug}',
'categories.manage' => 'categories/manage',
'tags.manage' => 'tags/manage',
'profiles.manage' => 'profiles/manage',
'permissions.manage' => 'permissions/manage',
'roles.manage' => 'roles/manage',
'static.getting-started' => 'getting-started',
'static.faq' => 'faq',
'static.privacy' => 'privacy',
'static.organizations' => 'organizations',
'static.principles' => 'principles',
'static.report-issue' => 'report-issue',
'static.events' => 'events',
'static.the-hague' => 'the-hague',
'static.lekkernassuh' => 'lekkernassuh',
'static.amst-brus-lisb' => 'amsterdam-brussels-lisbon',
'static.work-w-us' => 'work-with-us',
'static.philosophy' => 'philosophy',
'static.open-source' => 'open-source',
'static.timebank-organization' => 'timebank-organization',
'static.history' => 'history',
'static.press-media' => 'press-and-media',
'static.economics-and-research' => 'economics-and-research',
'static.team' => 'team',
'static.messenger' => 'about-messenger',
'static.report-error' => 'report-error',
'profile.show' => '{type}/{id}',
'profile.show_active' => 'profile/show',
'user.show' => 'user/{id}',
'user.show-by-name' => 'user/{name}',
'organization.show' => 'organization/{id}',
'organization.show-by-name' => 'organization/{name}',
'bank.show' => 'bank/{id}',
'bank.show-by-name' => 'bank/{name}',
'admin.show' => 'admin/{id}',
'admin.show-by-name' => 'admin/{name}',
'profile.edit' => 'profile/edit',
'users-overview' => 'users-overview',
'search.show' => 'search',
'terms.show' => 'terms-of-service',
'policy.show' => 'privacy-policy',
'profile.settings' => 'profile/settings',
'messenger.portal' => 'messenger',
'messenger.show' => 'messenger/{conversation}',
'messenger.private.create' => 'messenger/recipient/{alias}/{id}',
'messenger.threads.show.call' => 'messenger/threads/{thread}/calls/{call}',
'messenger.join.invite' => 'messenger/join/{invite}',
'chat.start' => 'chats/{profileType}/{id}',
'register' => 'register',
'login' => 'login',
'bank.login' => 'bank/login',
'admin.login' => 'admin/login',
'password.request' => 'password/forgot',
'password.email' => 'password/email',
'password.reset' => 'password/reset/{token}',
'password.update' => 'password/reset',
'logout' => 'logout',
'bank.logout' => 'bank/logout',
'admin.logout' => 'admin/logout'
];

View File

@@ -0,0 +1,148 @@
<?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' => 'This field must be accepted.',
'accepted_if' => 'This field must be accepted when :other is :value.',
'active_url' => 'This is not a valid URL.',
'after' => 'This must be a date after :date.',
'after_or_equal' => 'This must be a date after or equal to :date.',
'alpha' => 'This field must only contain letters.',
'alpha_dash' => 'This field must only contain letters, numbers, dashes and underscores.',
'alpha_num' => 'This field must only contain letters and numbers.',
'array' => 'This field must be an array.',
'before' => 'This must be a date before :date.',
'before_or_equal' => 'This must be a date before or equal to :date.',
'between' => [
'array' => 'This content must have between :min and :max items.',
'file' => 'This file must be between :min and :max kilobytes.',
'numeric' => 'This value must be between :min and :max.',
'string' => 'This string must be between :min and :max characters.',
],
'boolean' => 'This field must be true or false.',
'confirmed' => 'The confirmation does not match.',
'current_password' => 'The password is incorrect.',
'date' => 'This is not a valid date.',
'date_equals' => 'This must be a date equal to :date.',
'date_format' => 'This does not match the format :format.',
'declined' => 'This value must be declined.',
'declined_if' => 'This value must be declined when :other is :value.',
'different' => 'This value must be different from :other.',
'digits' => 'This must be :digits digits.',
'digits_between' => 'This must be between :min and :max digits.',
'dimensions' => 'This image has invalid dimensions.',
'distinct' => 'This field has a duplicate value.',
'email' => 'This must be a valid email address.',
'ends_with' => 'This must end with one of the following: :values.',
'enum' => 'The selected value is invalid.',
'exists' => 'The selected value is invalid.',
'file' => 'The content must be a file.',
'filled' => 'This field must have a value.',
'gt' => [
'array' => 'The content must have more than :value items.',
'file' => 'The file size must be greater than :value kilobytes.',
'numeric' => 'The value must be greater than :value.',
'string' => 'The string must be greater than :value characters.',
],
'gte' => [
'array' => 'The content must have :value items or more.',
'file' => 'The file size must be greater than or equal to :value kilobytes.',
'numeric' => 'The value must be greater than or equal to :value.',
'string' => 'The string must be greater than or equal to :value characters.',
],
'image' => 'This must be an image.',
'in' => 'The selected value is invalid.',
'in_array' => 'This value does not exist in :other.',
'integer' => 'This must be an integer.',
'ip' => 'This must be a valid IP address.',
'ipv4' => 'This must be a valid IPv4 address.',
'ipv6' => 'This must be a valid IPv6 address.',
'json' => 'This must be a valid JSON string.',
'lt' => [
'array' => 'The content must have less than :value items.',
'file' => 'The file size must be less than :value kilobytes.',
'numeric' => 'The value must be less than :value.',
'string' => 'The string must be less than :value characters.',
],
'lte' => [
'array' => 'The content must not have more than :value items.',
'file' => 'The file size must be less than or equal to :value kilobytes.',
'numeric' => 'The value must be less than or equal to :value.',
'string' => 'The string must be less than or equal to :value characters.',
],
'mac_address' => 'The value must be a valid MAC address.',
'max' => [
'array' => 'The content must not have more than :max items.',
'file' => 'The file size must not be greater than :max kilobytes.',
'numeric' => 'The value must not be greater than :max.',
'string' => 'The string must not be greater than :max characters.',
],
'mimes' => 'This must be a file of type: :values.',
'mimetypes' => 'This must be a file of type: :values.',
'min' => [
'array' => 'The value must have at least :min items.',
'file' => 'The file size must be at least :min kilobytes.',
'numeric' => 'The value must be at least :min.',
'string' => 'The string must be at least :min characters.',
],
'multiple_of' => 'The value must be a multiple of :value.',
'not_in' => 'The selected value is invalid.',
'not_regex' => 'This format is invalid.',
'numeric' => 'This must be a number.',
'password' => 'The password is incorrect.',
'present' => 'This field must be present.',
'regex' => 'This format is invalid.',
'required' => 'This field is required.',
'required_array_keys' => 'This field must contain entries for: :values.',
'required_if' => 'This field is required when :other is :value.',
'required_unless' => 'This field is required unless :other is in :values.',
'required_with' => 'This field is required when :values is present.',
'required_with_all' => 'This field is required when :values are present.',
'required_without' => 'This field is required when :values is not present.',
'required_without_all' => 'This field is required when none of :values are present.',
'prohibited' => 'This field is prohibited.',
'prohibited_if' => 'This field is prohibited when :other is :value.',
'prohibited_unless' => 'This field is prohibited unless :other is in :values.',
'prohibits' => 'This field prohibits :other from being present.',
'same' => 'The value of this field must match the one from :other.',
'size' => [
'array' => 'The content must contain :size items.',
'file' => 'The file size must be :size kilobytes.',
'numeric' => 'The value must be :size.',
'string' => 'The string must be :size characters.',
],
'starts_with' => 'This must start with one of the following: :values.',
'string' => 'This must be a string.',
'timezone' => 'This must be a valid timezone.',
'unique' => 'This has already been taken.',
'uploaded' => 'This failed to upload.',
'url' => 'This must be a valid URL.',
'uuid' => 'This must be a valid UUID.',
/*
|--------------------------------------------------------------------------
| 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',
],
],
];

View File

@@ -0,0 +1,228 @@
<?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' => '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.',
'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.',
],
'boolean' => 'The :attribute field must be true or false.',
'confirmed' => 'The :attribute 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.',
'distinct' => 'The :attribute field has a duplicate value.',
'email' => 'The :attribute must be a valid email address.',
'ends_with' => 'The :attribute 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.',
'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.',
],
'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.',
],
'image' => 'The :attribute 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.',
'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.',
],
'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.',
],
'mac_address' => 'The :attribute 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.',
],
'mimes' => 'The :attribute must be a file of type: :values.',
'mimetypes' => 'The :attribute 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.',
],
'multiple_of' => 'The :attribute 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.',
'password' => 'The password is incorrect.',
'present' => 'The :attribute field must be present.',
'regex' => 'The :attribute 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.',
'required_unless' => 'The :attribute field is required unless :other is in :values.',
'required_with' => 'The :attribute field is required when :values is present.',
'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.',
'prohibited' => 'The :attribute field is prohibited.',
'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.',
'same' => 'The :attribute and :other must match.',
'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.',
],
'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.',
'unique' => 'The :attribute has already been taken.',
'uploaded' => 'The :attribute failed to upload.',
'url' => 'The :attribute must be a valid URL.',
'uuid' => 'The :attribute must be a valid UUID.',
/*
|--------------------------------------------------------------------------
| 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' => [
// Transaction type validation
'Transaction type is required' => 'Transaction type is required',
//SocialsForm.php
'social_limit' => 'You can only add up to :limit social media links.',
'profile_user' => [
'name' => [
'disallowed' => ':attribute can not contain ":word".',
'completely_disallowed' => ':attribute can not only be ":name".',
],
],
'country' => [
'required_if' => 'The :attribute field is required.',
],
'division' => [
'required_if' => 'The :attribute field is required.',
],
'city' => [
'required_if' => 'The :attribute field is required.',
],
'district' => [
'required_if' => 'The :attribute field is required.',
],
// pay.blade.php
'amount.min' => 'Amount must be at least :min minute.',
'fromAccountId.required' => 'From account is required.',
'toAccountId.*' => 'To account is required.',
// update-profile-phone.blade.php
'state.phone' => [
'phone' => 'Enter a valid mobile phone number.',
],
],
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap our attribute placeholder
| with something more reader friendly such as "E-Mail Address" instead
| of "email". This simply helps us make our message more expressive.
|
*/
'attributes' => [
// registration.php
'name' => 'Name',
// update-profile-organization-form.blade.php
// update-profile-personal-form.blade.php
'state.about' => 'Introduction',
'state.about_short' => 'Short intro',
'state.motivation' => 'Motivation',
'language' => 'Language',
'state.date_of_birth' => 'Date of birth',
'socialsOptionSelected' => 'Social media',
'userOnSocial' => 'Username on social media',
// update-profile-location-form.blade.php
'country' => 'Country',
'division' => 'Division',
'city' => 'City/town',
'district' => 'District',
// update-profile-skills-form.blade.php
'tagsArray.*' => 'tags',
'newTag.name' => 'activity tag',
'newTag.example' => 'descriptive example',
'newTag.check' => 'check on the example',
'newTagCategory' => 'category',
'selectTagTranslation' => 'selected translation',
'inputTagTranslation.name' => 'translation of the activity tag',
'inputTagTranslation.example' => 'translation of the example',
// pay.blade.php
'description' => 'description',
],
];