diff --git a/README.md b/README.md index 17091a62..bab9c1a4 100644 --- a/README.md +++ b/README.md @@ -1 +1,60 @@ -# Sportmonks-laravel +# Laravel Sportmonks Website + +Laravel website that uses [Sportmonks](https://www.sportmonks.com/sports/soccer) (live)score API calls. +Documentation for the API can be found [here](https://www.sportmonks.com/sports/soccer) + +## Installation + +**1-** Require the laravel-sportmonks-soccer-package via Composer in your `composer.json`. +```json +{ + "require": { + "kirill-latish/laravel-sportmonks-soccer": "^2.0" + } +} +``` + +**2-** Run Composer to install or update the new requirement. + +```bash +$ composer install +``` + +or + +```bash +$ composer update +``` + +**3-** Add the service provider to your `app/config/app.php` file +```php +Sportmonks\SoccerAPI\SoccerAPIServiceProvider::class, +``` + +**4-** Add the facade to your `app/config/app.php` file +```php +'SoccerAPI' => Sportmonks\SoccerAPI\Facades\SoccerAPI::class, +``` + +**5-** Publish the configuration file + +```bash +$ php artisan vendor:publish --provider="Sportmonks\SoccerAPI\SoccerAPIServiceProvider" +``` + +**6-** Review the configuration file and add your token (preferably through env: `'api_token' => env('API_TOKEN')` ) + +***If you don't have a API-token, you can get a free one [here](https://www.sportmonks.com/register) This should be enough to experiment with the code.*** + +``` +config/soccerapi.php +``` + +**7-** Review the configuration file and add your timezone (preferably through config file: `'timezone' => config('app.timezone')` ) + +``` +config/soccerapi.php +``` + +## Special thanks to +[kirill-latish](https://github.com/kirill-latish/laravel-sportmonks-soccer) diff --git a/resources/lang/en/application.php b/resources/lang/en/application.php index 331d281b..059dab1a 100644 --- a/resources/lang/en/application.php +++ b/resources/lang/en/application.php @@ -23,7 +23,7 @@ 'fixtures' => 'fixtures', 'Fixtures' => 'Fixtures', 'todays\'s fixtures' => 'todays\'s fixtures', - 'last fixtures' => '{1} Laatste wedstrijd|[2,*] Upcoming :count fixtures', + 'last fixtures' => '{1} Last fixture|[2,*] Upcoming :count fixtures', 'upcoming fixtures' => '{1} Upcoming fixture|[2,*] Upcoming :count fixtures', 'Standings' => 'Standings', 'Topscorers' => 'Topscorers', @@ -98,4 +98,4 @@ 'msg_no_matches_found' => 'No matches found for :date.', 'msg_no_data' => 'is not (yet) available for this fixture|are not (yet) available for this fixture', -]; \ No newline at end of file +]; diff --git a/resources/lang/id/application.php b/resources/lang/id/application.php new file mode 100644 index 00000000..77c4d140 --- /dev/null +++ b/resources/lang/id/application.php @@ -0,0 +1,101 @@ + 'Liga', + 'leagues' => 'Liga', + 'Leagues' => 'Liga', + 'All leagues' => 'Semua Liga', + + 'League name' => 'Nama Liga', + 'Country' => 'Negara', + + 'fixture' => 'pekan', + 'fixtures' => 'pekan', + 'Fixtures' => 'pekan', + 'todays\'s fixtures' => 'todays\'s fixtures', + 'last fixtures' => '{1} Laatste wedstrijd|[2,*] Upcoming :count fixtures', + 'upcoming fixtures' => '{1} Upcoming fixture|[2,*] Upcoming :count fixtures', + 'Standings' => 'Klasemen', + 'Topscorers' => 'Top Skor', + 'Player' => 'Pemain', + + 'No.' => 'No.', + 'Team' => 'Tim', + 'Played' => 'Tanding', + 'Won' => 'Menang', + 'Draw' => 'Seri', + 'Lost' => 'Kalah', + 'Goals' => 'Gol', + 'Points' => 'Point', + 'Form' => 'Form', + 'W' => 'W', + 'D' => 'D', + 'L' => 'L', + + 'live' => 'langsung', + 'livescores' => 'livescores', + 'Livescores' => 'Livescores', + + 'Last update' => 'Update terakhir', + + 'Venue' => 'Lokasi', + 'Referee' => 'Wasit', + 'Match Summary' => 'Ringkasan Pertandingan', + 'Statistics' => 'Statistik', + 'Lineups' => 'Daftar Pemain', + 'Formation' => 'Formasi', + 'Starting lineups' => 'Daftar pemain utama', + 'Substitutes' => 'Cadangan', + 'Missing players' => 'Missing players', + 'Coaches' => 'Pelatih', + + 'Total shots' => 'Total Tendangan', + 'Shots on goal' => 'Tendangan ke gawang', + 'Shots of goal' => 'Shots of goal', + 'Blocked shots' => 'Blocked shots', + 'Shots inside box' => 'Shots inside box', + 'Shots outside box' => 'Shots outside box', + 'Total passes' => 'Total Umpan', + 'Accurate passes' => 'Akurasi umpan', + 'Passing percentage' => 'Persentasi umpan', + 'Total attacks' => 'Total serangan', + 'Dangerous attacks' => 'Serangan berbahaya', + 'Fouls' => 'Pelanggaran', + 'Corners' => 'Tendangan Pojok', + 'Offside' => 'Offside', + 'Ball possession' => 'Ball possession', + 'Yellow cards' => 'Kartu Kuning', + 'Red cards' => 'Kartu Merah', + 'Saves' => 'Penyelamatan', + 'Substitutions' => 'Pergantian', + 'Goal kicks' => 'Goal kicks', + 'Goal attempts' => 'Goal attempts', + 'Free kicks' => 'Tendangan bebas', + 'Throw-ins' => 'Lemparan ke dalam', + 'Ball safe' => 'Penyelamatan', + + 'now' => 'sekarang', + 'today' => 'hari ini', + 'Today' => 'Hari ini', + 'tomorrow' => 'besok', + 'Tomorrow' => 'Besok', + 'yesterday' => 'kemarin', + 'Yesterday' => 'Kemarin', + + 'msg_too_much_results' => 'We only show the first :count results. The shown data might be incomplete. We try to fix this in a later version.', + 'msg_no_livescores_now' => 'Tidak ada update score sekarang', + 'msg_no_livescores_today' => 'Tidak ada update score hari ini', + 'msg_no_matches_found' => 'Tidak ada pertandingan pada tanggal :date.', + 'msg_no_data' => 'tidak tersedia pada minggu ini |are not (yet) available for this fixture', + +]; diff --git a/resources/lang/id/auth.php b/resources/lang/id/auth.php new file mode 100644 index 00000000..22b48f64 --- /dev/null +++ b/resources/lang/id/auth.php @@ -0,0 +1,22 @@ + 'Identitas tersebut tidak cocok dengan data kami.', + 'throttle' => 'Terlalu banyak usaha masuk. Silahkan coba lagi dalam :seconds detik.', + +]; diff --git a/resources/lang/id/pagination.php b/resources/lang/id/pagination.php new file mode 100644 index 00000000..43d5fcfd --- /dev/null +++ b/resources/lang/id/pagination.php @@ -0,0 +1,19 @@ + '« Sebelumnya', + 'next' => 'Berikutnya »', + +]; diff --git a/resources/lang/id/passwords.php b/resources/lang/id/passwords.php new file mode 100644 index 00000000..7705e3d3 --- /dev/null +++ b/resources/lang/id/passwords.php @@ -0,0 +1,25 @@ + 'Kata sandi minimal harus memiliki enam karakter dan cocok dengan konfirmasi.', + 'reset' => 'Kata sandi Anda sudah direset!', + 'sent' => 'Kami sudah mengirim surel yang berisi tautan untuk mereset kata sandi Anda!', + 'token' => 'Token pengaturan ulang kata sandi tidak sah.', + 'user' => 'Kami tidak dapat menemukan pengguna dengan alamat surel tersebut.', + +]; diff --git a/resources/lang/id/validation.php b/resources/lang/id/validation.php new file mode 100644 index 00000000..b163c424 --- /dev/null +++ b/resources/lang/id/validation.php @@ -0,0 +1,146 @@ + 'The :attribute must be accepted.', + '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 may only contain letters.', + 'alpha_dash' => 'The :attribute may only contain letters, numbers, dashes and underscores.', + 'alpha_num' => 'The :attribute may 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' => [ + 'numeric' => 'The :attribute must be between :min and :max.', + 'file' => 'The :attribute must be between :min and :max kilobytes.', + 'string' => 'The :attribute must be between :min and :max characters.', + 'array' => 'The :attribute must have between :min and :max items.', + ], + 'boolean' => 'The :attribute field must be true or false.', + 'confirmed' => 'The :attribute confirmation does not match.', + 'date' => 'The :attribute is not a valid date.', + 'date_format' => 'The :attribute does not match the format :format.', + '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.', + 'exists' => 'The selected :attribute is invalid.', + 'file' => 'The :attribute must be a file.', + 'filled' => 'The :attribute field must have a value.', + 'gt' => [ + 'numeric' => 'The :attribute must be greater than :value.', + 'file' => 'The :attribute must be greater than :value kilobytes.', + 'string' => 'The :attribute must be greater than :value characters.', + 'array' => 'The :attribute must have more than :value items.', + ], + 'gte' => [ + 'numeric' => 'The :attribute must be greater than or equal :value.', + 'file' => 'The :attribute must be greater than or equal :value kilobytes.', + 'string' => 'The :attribute must be greater than or equal :value characters.', + 'array' => 'The :attribute must have :value items or more.', + ], + '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' => [ + 'numeric' => 'The :attribute must be less than :value.', + 'file' => 'The :attribute must be less than :value kilobytes.', + 'string' => 'The :attribute must be less than :value characters.', + 'array' => 'The :attribute must have less than :value items.', + ], + 'lte' => [ + 'numeric' => 'The :attribute must be less than or equal :value.', + 'file' => 'The :attribute must be less than or equal :value kilobytes.', + 'string' => 'The :attribute must be less than or equal :value characters.', + 'array' => 'The :attribute must not have more than :value items.', + ], + 'max' => [ + 'numeric' => 'The :attribute may not be greater than :max.', + 'file' => 'The :attribute may not be greater than :max kilobytes.', + 'string' => 'The :attribute may not be greater than :max characters.', + 'array' => 'The :attribute may not have more than :max items.', + ], + 'mimes' => 'The :attribute must be a file of type: :values.', + 'mimetypes' => 'The :attribute must be a file of type: :values.', + 'min' => [ + 'numeric' => 'The :attribute must be at least :min.', + 'file' => 'The :attribute must be at least :min kilobytes.', + 'string' => 'The :attribute must be at least :min characters.', + 'array' => 'The :attribute must have at least :min items.', + ], + 'not_in' => 'The selected :attribute is invalid.', + 'not_regex' => 'The :attribute format is invalid.', + 'numeric' => 'The :attribute must be a number.', + 'present' => 'The :attribute field must be present.', + 'regex' => 'The :attribute format is invalid.', + 'required' => 'The :attribute field is required.', + '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 is 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.', + 'size' => [ + 'numeric' => 'The :attribute must be :size.', + 'file' => 'The :attribute must be :size kilobytes.', + 'string' => 'The :attribute must be :size characters.', + 'array' => 'The :attribute must contain :size items.', + ], + 'string' => 'The :attribute must be a string.', + 'timezone' => 'The :attribute must be a valid zone.', + 'unique' => 'The :attribute has already been taken.', + 'uploaded' => 'The :attribute failed to upload.', + 'url' => 'The :attribute format is invalid.', + + /* + |-------------------------------------------------------------------------- + | 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' => [], + +];