diff --git a/composer.json b/composer.json
index 85bba709..69d71890 100644
--- a/composer.json
+++ b/composer.json
@@ -35,7 +35,7 @@
"alt-three/validator": "^4.0",
"aws/aws-sdk-php": "^3.7",
"barryvdh/laravel-cors": "^0.11.0",
- "doctrine/dbal": "2.5.13",
+ "doctrine/dbal": "2.8.0",
"fideloper/proxy": "^4.0",
"graham-campbell/binput": "^5.0",
"graham-campbell/exceptions": "^11.0",
diff --git a/composer.lock b/composer.lock
index 2ae74abf..d1002fe1 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "905973a718f0eda0f42d1e0b85dda721",
+ "content-hash": "0c918dd951e977610ed1482a203b45e2",
"packages": [
{
"name": "alt-three/badger",
@@ -409,16 +409,16 @@
},
{
"name": "aws/aws-sdk-php",
- "version": "3.69.6",
+ "version": "3.71.3",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
- "reference": "7772d90f021a160d8208e484513a41eaca848693"
+ "reference": "fa7f498cb41c7eb47e952355b8be2061816a9a60"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/7772d90f021a160d8208e484513a41eaca848693",
- "reference": "7772d90f021a160d8208e484513a41eaca848693",
+ "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/fa7f498cb41c7eb47e952355b8be2061816a9a60",
+ "reference": "fa7f498cb41c7eb47e952355b8be2061816a9a60",
"shasum": ""
},
"require": {
@@ -426,7 +426,7 @@
"ext-pcre": "*",
"ext-simplexml": "*",
"ext-spl": "*",
- "guzzlehttp/guzzle": "^5.3.1|^6.2.1",
+ "guzzlehttp/guzzle": "^5.3.3|^6.2.1",
"guzzlehttp/promises": "~1.0",
"guzzlehttp/psr7": "^1.4.1",
"mtdowling/jmespath.php": "~2.2",
@@ -488,7 +488,7 @@
"s3",
"sdk"
],
- "time": "2018-10-12T21:44:38+00:00"
+ "time": "2018-11-09T21:57:53+00:00"
},
{
"name": "bacon/bacon-qr-code",
@@ -741,74 +741,6 @@
"description": "implementation of xdg base directory specification for php",
"time": "2014-10-24T07:27:01+00:00"
},
- {
- "name": "doctrine/annotations",
- "version": "v1.6.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/annotations.git",
- "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5",
- "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5",
- "shasum": ""
- },
- "require": {
- "doctrine/lexer": "1.*",
- "php": "^7.1"
- },
- "require-dev": {
- "doctrine/cache": "1.*",
- "phpunit/phpunit": "^6.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.6.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Docblock Annotations Parser",
- "homepage": "http://www.doctrine-project.org",
- "keywords": [
- "annotations",
- "docblock",
- "parser"
- ],
- "time": "2017-12-06T07:11:42+00:00"
- },
{
"name": "doctrine/cache",
"version": "v1.8.0",
@@ -884,167 +816,34 @@
],
"time": "2018-08-21T18:01:43+00:00"
},
- {
- "name": "doctrine/collections",
- "version": "v1.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/collections.git",
- "reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf",
- "reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf",
- "shasum": ""
- },
- "require": {
- "php": "^7.1"
- },
- "require-dev": {
- "doctrine/coding-standard": "~0.1@dev",
- "phpunit/phpunit": "^5.7"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.3.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Doctrine\\Common\\Collections\\": "lib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Collections Abstraction library",
- "homepage": "http://www.doctrine-project.org",
- "keywords": [
- "array",
- "collections",
- "iterator"
- ],
- "time": "2017-07-22T10:37:32+00:00"
- },
- {
- "name": "doctrine/common",
- "version": "v2.7.3",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/common.git",
- "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9",
- "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9",
- "shasum": ""
- },
- "require": {
- "doctrine/annotations": "1.*",
- "doctrine/cache": "1.*",
- "doctrine/collections": "1.*",
- "doctrine/inflector": "1.*",
- "doctrine/lexer": "1.*",
- "php": "~5.6|~7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.4.6"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.7.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\": "lib/Doctrine/Common"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Common Library for Doctrine projects",
- "homepage": "http://www.doctrine-project.org",
- "keywords": [
- "annotations",
- "collections",
- "eventmanager",
- "persistence",
- "spl"
- ],
- "time": "2017-07-22T08:35:12+00:00"
- },
{
"name": "doctrine/dbal",
- "version": "v2.5.13",
+ "version": "v2.8.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
- "reference": "729340d8d1eec8f01bff708e12e449a3415af873"
+ "reference": "5140a64c08b4b607b9bedaae0cedd26f04a0e621"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873",
- "reference": "729340d8d1eec8f01bff708e12e449a3415af873",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/5140a64c08b4b607b9bedaae0cedd26f04a0e621",
+ "reference": "5140a64c08b4b607b9bedaae0cedd26f04a0e621",
"shasum": ""
},
"require": {
- "doctrine/common": ">=2.4,<2.8-dev",
- "php": ">=5.3.2"
+ "doctrine/cache": "^1.0",
+ "doctrine/event-manager": "^1.0",
+ "ext-pdo": "*",
+ "php": "^7.1"
},
"require-dev": {
- "phpunit/phpunit": "4.*",
- "symfony/console": "2.*||^3.0"
+ "doctrine/coding-standard": "^4.0",
+ "jetbrains/phpstorm-stubs": "^2018.1.2",
+ "phpstan/phpstan": "^0.10.1",
+ "phpunit/phpunit": "^7.1.2",
+ "phpunit/phpunit-mock-objects": "!=3.2.4,!=3.2.5",
+ "symfony/console": "^2.0.5|^3.0|^4.0",
+ "symfony/phpunit-bridge": "^3.4.5|^4.0.5"
},
"suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files."
@@ -1055,7 +854,8 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.5.x-dev"
+ "dev-master": "2.8.x-dev",
+ "dev-develop": "3.0.x-dev"
}
},
"autoload": {
@@ -1093,7 +893,81 @@
"persistence",
"queryobject"
],
- "time": "2017-07-22T20:44:48+00:00"
+ "time": "2018-07-13T03:16:35+00:00"
+ },
+ {
+ "name": "doctrine/event-manager",
+ "version": "v1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/event-manager.git",
+ "reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3",
+ "reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "conflict": {
+ "doctrine/common": "<2.9@dev"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^4.0",
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\": "lib/Doctrine/Common"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "Doctrine Event Manager component",
+ "homepage": "https://www.doctrine-project.org/projects/event-manager.html",
+ "keywords": [
+ "event",
+ "eventdispatcher",
+ "eventmanager"
+ ],
+ "time": "2018-06-11T11:59:03+00:00"
},
{
"name": "doctrine/inflector",
@@ -2416,16 +2290,16 @@
},
{
"name": "lcobucci/jwt",
- "version": "3.2.4",
+ "version": "3.2.5",
"source": {
"type": "git",
"url": "https://github.com/lcobucci/jwt.git",
- "reference": "c9704b751315d21735dc98d78d4f37bd73596da7"
+ "reference": "82be04b4753f8b7693b62852b7eab30f97524f9b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/lcobucci/jwt/zipball/c9704b751315d21735dc98d78d4f37bd73596da7",
- "reference": "c9704b751315d21735dc98d78d4f37bd73596da7",
+ "url": "https://api.github.com/repos/lcobucci/jwt/zipball/82be04b4753f8b7693b62852b7eab30f97524f9b",
+ "reference": "82be04b4753f8b7693b62852b7eab30f97524f9b",
"shasum": ""
},
"require": {
@@ -2462,7 +2336,7 @@
{
"name": "Luís Otávio Cobucci Oblonczyk",
"email": "lcobucci@gmail.com",
- "role": "developer"
+ "role": "Developer"
}
],
"description": "A simple library to work with JSON Web Token and JSON Web Signature",
@@ -2470,7 +2344,7 @@
"JWS",
"jwt"
],
- "time": "2018-08-03T11:23:50+00:00"
+ "time": "2018-11-11T12:22:26+00:00"
},
{
"name": "league/commonmark",
@@ -2881,16 +2755,16 @@
},
{
"name": "nexmo/client",
- "version": "1.5.0",
+ "version": "1.5.1",
"source": {
"type": "git",
"url": "https://github.com/Nexmo/nexmo-php.git",
- "reference": "4a6ecf73f7ee79b861600cb84e8a44c8a3b3ef15"
+ "reference": "2c39e4a2d5d1a012cfe2510c1513817dd8ed7ad0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Nexmo/nexmo-php/zipball/4a6ecf73f7ee79b861600cb84e8a44c8a3b3ef15",
- "reference": "4a6ecf73f7ee79b861600cb84e8a44c8a3b3ef15",
+ "url": "https://api.github.com/repos/Nexmo/nexmo-php/zipball/2c39e4a2d5d1a012cfe2510c1513817dd8ed7ad0",
+ "reference": "2c39e4a2d5d1a012cfe2510c1513817dd8ed7ad0",
"shasum": ""
},
"require": {
@@ -2901,7 +2775,7 @@
"zendframework/zend-diactoros": "^1.3"
},
"require-dev": {
- "estahn/phpunit-json-assertions": "@stable",
+ "estahn/phpunit-json-assertions": "^1.0.0",
"php-http/mock-client": "^0.3.0",
"phpunit/phpunit": "^5.7",
"squizlabs/php_codesniffer": "^3.1"
@@ -2925,7 +2799,7 @@
}
],
"description": "PHP Client for using Nexmo's API.",
- "time": "2018-09-20T14:13:04+00:00"
+ "time": "2018-11-05T16:57:16+00:00"
},
{
"name": "nikic/php-parser",
@@ -6951,9 +6825,7 @@
],
"aliases": [],
"minimum-stability": "dev",
- "stability-flags": {
- "nexmo/client": 10
- },
+ "stability-flags": [],
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
diff --git a/package.json b/package.json
index 902c5d8d..f17df428 100644
--- a/package.json
+++ b/package.json
@@ -28,13 +28,13 @@
"laravel-mix": "^2.1",
"laravel-mix-purgecss": "^2.2.0",
"livestamp": "git+https://github.com/mattbradley/livestampjs.git#develop",
- "lodash": "^4.17.4",
+ "lodash": "^4.17.11",
"messenger": "git+https://github.com/HubSpot/messenger.git",
"moment": "^2.17.1",
"promise": "^7.3.1",
"sortablejs": "^1.6.1",
"sweetalert2": "^6.8.0",
- "vue": "^2.5.16",
+ "vue": "^2.5.17",
"vue-template-compiler": "^2.5.16"
},
"private": true
diff --git a/resources/lang/et-EE/cachet.php b/resources/lang/et-EE/cachet.php
new file mode 100644
index 00000000..7e69a3ea
--- /dev/null
+++ b/resources/lang/et-EE/cachet.php
@@ -0,0 +1,146 @@
+ [
+ 'last_updated' => 'Last updated :timestamp',
+ 'status' => [
+ 0 => 'Unknown',
+ 1 => 'Operational',
+ 2 => 'Performance Issues',
+ 3 => 'Partial Outage',
+ 4 => 'Major Outage',
+ ],
+ 'group' => [
+ 'other' => 'Other Components',
+ ],
+ 'select_all' => 'Select All',
+ 'deselect_all' => 'Deselect All',
+ ],
+
+ // Incidents
+ 'incidents' => [
+ 'none' => 'No incidents reported',
+ 'past' => 'Past Incidents',
+ 'stickied' => 'Stickied Incidents',
+ 'scheduled' => 'Maintenance',
+ 'scheduled_at' => ', scheduled :timestamp',
+ 'posted' => 'Posted :timestamp',
+ 'posted_at' => 'Posted at :timestamp',
+ 'status' => [
+ 1 => 'Investigating',
+ 2 => 'Identified',
+ 3 => 'Watching',
+ 4 => 'Fixed',
+ ],
+ ],
+
+ // Schedule
+ 'schedules' => [
+ 'status' => [
+ 0 => 'Upcoming',
+ 1 => 'In Progress',
+ 2 => 'Complete',
+ ],
+ ],
+
+ // Service Status
+ 'service' => [
+ 'good' => '[0,1]System operational|[2,*]All systems are operational',
+ 'bad' => '[0,1]The system is experiencing issues|[2,*]Some systems are experiencing issues',
+ 'major' => '[0,1]The system is experiencing major issues|[2,*]Some systems are experiencing major issues',
+ ],
+
+ 'api' => [
+ 'regenerate' => 'Regenerate API Key',
+ 'revoke' => 'Revoke API Key',
+ ],
+
+ // Metrics
+ 'metrics' => [
+ 'filter' => [
+ 'last_hour' => 'Last Hour',
+ 'hourly' => 'Last 12 Hours',
+ 'weekly' => 'Week',
+ 'monthly' => 'Month',
+ ],
+ ],
+
+ // Subscriber
+ 'subscriber' => [
+ 'subscribe' => 'Subscribe to get the updates',
+ 'unsubscribe' => 'Unsubscribe',
+ 'button' => 'Subscribe',
+ 'manage_subscription' => 'Manage subscription',
+ 'manage' => [
+ 'notifications' => 'Notifications',
+ 'notifications_for' => 'Manage notifications for',
+ 'no_subscriptions' => 'You\'re currently subscribed to all updates.',
+ 'update_subscription' => 'Update Subscription',
+ 'my_subscriptions' => 'You\'re currently subscribed to the following updates.',
+ 'manage_at_link' => 'Manage your subscriptions at :link',
+ ],
+ 'email' => [
+ 'subscribe' => 'Subscribe to email updates.',
+ 'subscribed' => 'You\'ve been subscribed to email notifications, please check your email to confirm your subscription.',
+ 'verified' => 'Your email subscription has been confirmed. Thank you!',
+ 'manage' => 'Manage your subscription',
+ 'unsubscribe' => 'Unsubscribe from email updates.',
+ 'unsubscribed' => 'Your email subscription has been cancelled.',
+ 'failure' => 'Something went wrong with the subscription.',
+ 'already-subscribed' => 'Cannot subscribe :email because they\'re already subscribed.',
+ ],
+ ],
+
+ 'signup' => [
+ 'title' => 'Sign Up',
+ 'username' => 'Username',
+ 'email' => 'Email',
+ 'password' => 'Password',
+ 'success' => 'Your account has been created.',
+ 'failure' => 'Something went wrong with the signup.',
+ ],
+
+ 'system' => [
+ 'update' => 'There is a newer version of Cachet available. You can learn how to update here!',
+ ],
+
+ // Modal
+ 'modal' => [
+ 'close' => 'Close',
+ 'subscribe' => [
+ 'title' => 'Subscribe to component updates',
+ 'body' => 'Enter your email address to subscribe to updates for this component. If you\'re already subscribed, you\'ll already receive emails for this component.',
+ 'button' => 'Subscribe',
+ ],
+ ],
+
+ // Meta descriptions
+ 'meta' => [
+ 'description' => [
+ 'incident' => 'Details and updates about the :name incident that occurred on :date',
+ 'schedule' => 'Details about the scheduled maintenance period :name starting :startDate',
+ 'subscribe' => 'Subscribe to :app in order to receive updates of incidents and scheduled maintenance periods',
+ 'overview' => 'Stay up to date with the latest service updates from :app.',
+ ],
+ ],
+
+ // Other
+ 'home' => 'Home',
+ 'powered_by' => 'Powered by Cachet.',
+ 'timezone' => 'Times are shown in :timezone.',
+ 'about_this_site' => 'About This Site',
+ 'rss-feed' => 'RSS',
+ 'atom-feed' => 'Atom',
+ 'feed' => 'Status Feed',
+
+];
diff --git a/resources/lang/et-EE/dashboard.php b/resources/lang/et-EE/dashboard.php
new file mode 100644
index 00000000..3f70a368
--- /dev/null
+++ b/resources/lang/et-EE/dashboard.php
@@ -0,0 +1,304 @@
+ 'Dashboard',
+ 'writeable_settings' => 'The Cachet settings directory is not writeable. Please make sure that ./bootstrap/cachet is writeable by the web server.',
+
+ // Incidents
+ 'incidents' => [
+ 'title' => 'Incidents & Maintenance',
+ 'incidents' => 'Incidents',
+ 'logged' => '{0}There are no incidents, good work.|[1]You have logged one incident.|[2,*]You have reported :count incidents.',
+ 'incident-create-template' => 'Create Template',
+ 'incident-templates' => 'Incident Templates',
+ 'updates' => [
+ 'title' => 'Incident updates for :incident',
+ 'count' => '{0}Zero Updates|[1]One Update|[2]Two Updates|[3,*]Several Updates',
+ 'add' => [
+ 'title' => 'Create new incident update',
+ 'success' => 'Your new incident update has been created.',
+ 'failure' => 'Something went wrong with the incident update.',
+ ],
+ 'edit' => [
+ 'title' => 'Edit incident update',
+ 'success' => 'The incident update has been updated.',
+ 'failure' => 'Something went wrong updating the incident update',
+ ],
+ ],
+ 'reported_by' => 'Reported by :user',
+ 'add' => [
+ 'title' => 'Report an incident',
+ 'success' => 'Incident added.',
+ 'failure' => 'There was an error adding the incident, please try again.',
+ ],
+ 'edit' => [
+ 'title' => 'Edit an incident',
+ 'success' => 'Incident updated.',
+ 'failure' => 'There was an error editing the incident, please try again.',
+ ],
+ 'delete' => [
+ 'success' => 'The incident has been deleted and will not show on your status page.',
+ 'failure' => 'The incident could not be deleted, please try again.',
+ ],
+
+ // Incident templates
+ 'templates' => [
+ 'title' => 'Incident Templates',
+ 'add' => [
+ 'title' => 'Create an incident template',
+ 'message' => 'Create your first incident template.',
+ 'success' => 'Your new incident template has been created.',
+ 'failure' => 'Something went wrong with the incident template.',
+ ],
+ 'edit' => [
+ 'title' => 'Edit Template',
+ 'success' => 'The incident template has been updated.',
+ 'failure' => 'Something went wrong updating the incident template',
+ ],
+ 'delete' => [
+ 'success' => 'The incident template has been deleted.',
+ 'failure' => 'The incident template could not be deleted, please try again.',
+ ],
+ ],
+ ],
+
+ // Incident Maintenance
+ 'schedule' => [
+ 'schedule' => 'Maintenance',
+ 'logged' => '{0}There has been no Maintenance, good work.|[1]You have logged one schedule.|[2,*]You have reported :count schedules.',
+ 'scheduled_at' => 'Scheduled at :timestamp',
+ 'add' => [
+ 'title' => 'Add Maintenance',
+ 'success' => 'Maintenance added.',
+ 'failure' => 'Something went wrong adding the Maintenance, please try again.',
+ ],
+ 'edit' => [
+ 'title' => 'Edit Maintenance',
+ 'success' => 'Maintenance has been updated!',
+ 'failure' => 'Something went wrong editing the Maintenance, please try again.',
+ ],
+ 'delete' => [
+ 'success' => 'The Maintenance has been deleted and will not show on your status page.',
+ 'failure' => 'The Maintenance could not be deleted, please try again.',
+ ],
+ ],
+
+ // Components
+ 'components' => [
+ 'components' => 'Components',
+ 'component_statuses' => 'Component Statuses',
+ 'listed_group' => 'Grouped under :name',
+ 'add' => [
+ 'title' => 'Add a component',
+ 'message' => 'You should add a component.',
+ 'success' => 'Component created.',
+ 'failure' => 'Something went wrong with the component group, please try again.',
+ ],
+ 'edit' => [
+ 'title' => 'Edit a component',
+ 'success' => 'Component updated.',
+ 'failure' => 'Something went wrong with the component group, please try again.',
+ ],
+ 'delete' => [
+ 'success' => 'The component has been deleted!',
+ 'failure' => 'The component could not be deleted, please try again.',
+ ],
+
+ // Component groups
+ 'groups' => [
+ 'groups' => 'Component group|Component groups',
+ 'no_components' => 'You should add a component group.',
+ 'add' => [
+ 'title' => 'Add a component group',
+ 'success' => 'Component group added.',
+ 'failure' => 'Something went wrong with the component group, please try again.',
+ ],
+ 'edit' => [
+ 'title' => 'Edit a component group',
+ 'success' => 'Component group updated.',
+ 'failure' => 'Something went wrong with the component group, please try again.',
+ ],
+ 'delete' => [
+ 'success' => 'Component group has been deleted!',
+ 'failure' => 'The component group could not be deleted, please try again.',
+ ],
+ ],
+ ],
+
+ // Metrics
+ 'metrics' => [
+ 'metrics' => 'Metrics',
+ 'add' => [
+ 'title' => 'Create a metric',
+ 'message' => 'You should add a metric.',
+ 'success' => 'Metric created.',
+ 'failure' => 'Something went wrong with the metric, please try again.',
+ ],
+ 'edit' => [
+ 'title' => 'Edit a metric',
+ 'success' => 'Metric updated.',
+ 'failure' => 'Something went wrong with the metric, please try again.',
+ ],
+ 'delete' => [
+ 'success' => 'The metric has been deleted and will no longer display on your status page.',
+ 'failure' => 'The metric could not be deleted, please try again.',
+ ],
+ ],
+ // Subscribers
+ 'subscribers' => [
+ 'subscribers' => 'Subscribers',
+ 'description' => 'Subscribers will receive email updates when incidents are created or components are updated.',
+ 'description_disabled' => 'To use this feature, you need allow people to signup for notifications.',
+ 'verified' => 'Verified',
+ 'not_verified' => 'Not verified',
+ 'subscriber' => ':email, subscribed :date',
+ 'no_subscriptions' => 'Subscribed to all updates',
+ 'global' => 'Globally subscribed',
+ 'add' => [
+ 'title' => 'Add a new subscriber',
+ 'success' => 'Subscriber has been added!',
+ 'failure' => 'Something went wrong adding the subscriber, please try again.',
+ 'help' => 'Enter each subscriber on a new line.',
+ ],
+ 'edit' => [
+ 'title' => 'Update subscriber',
+ 'success' => 'Subscriber has been updated!',
+ 'failure' => 'Something went wrong editing the subscriber, please try again.',
+ ],
+ ],
+
+ // Team
+ 'team' => [
+ 'team' => 'Team',
+ 'member' => 'Member',
+ 'profile' => 'Profile',
+ 'description' => 'Team Members will be able to add, modify & edit components and incidents.',
+ 'add' => [
+ 'title' => 'Add a new team member',
+ 'success' => 'Team member added.',
+ 'failure' => 'The team member could not be added, please try again.',
+ ],
+ 'edit' => [
+ 'title' => 'Update profile',
+ 'success' => 'Profile updated.',
+ 'failure' => 'Something went wrong updating the profile, please try again.',
+ ],
+ 'delete' => [
+ 'success' => 'Team member has been deleted and will no longer have access to the dashboard!',
+ 'failure' => 'The team member could not be added, please try again.',
+ ],
+ 'invite' => [
+ 'title' => 'Invite a new team member',
+ 'success' => 'An invite has been sent',
+ 'failure' => 'The invite could not be sent, please try again.',
+ ],
+ ],
+
+ // Settings
+ 'settings' => [
+ 'settings' => 'Settings',
+ 'app-setup' => [
+ 'app-setup' => 'Application Setup',
+ 'images-only' => 'Only images may be uploaded.',
+ 'too-big' => 'The file you uploaded is too big. Upload an image smaller than :size',
+ ],
+ 'analytics' => [
+ 'analytics' => 'Analytics',
+ ],
+ 'log' => [
+ 'log' => 'Log',
+ ],
+ 'localization' => [
+ 'localization' => 'Localization',
+ ],
+ 'customization' => [
+ 'customization' => 'Customization',
+ 'header' => 'Custom Header HTML',
+ 'footer' => 'Custom Footer HTML',
+ ],
+ 'mail' => [
+ 'mail' => 'Mail',
+ 'test' => 'Test',
+ 'email' => [
+ 'subject' => 'Test notification from Cachet',
+ 'body' => 'This is a test notification from Cachet.',
+ ],
+ ],
+ 'security' => [
+ 'security' => 'Security',
+ 'two-factor' => 'Users without two-factor authentication',
+ ],
+ 'stylesheet' => [
+ 'stylesheet' => 'Stylesheet',
+ ],
+ 'theme' => [
+ 'theme' => 'Theme',
+ ],
+ 'edit' => [
+ 'success' => 'Settings saved.',
+ 'failure' => 'Settings could not be saved.',
+ ],
+ 'credits' => [
+ 'credits' => 'Credits',
+ 'contributors' => 'Contributors',
+ 'license' => 'Cachet is a BSD-3-licensed open source project, released by Alt Three Services Limited.',
+ 'backers-title' => 'Backers & Sponsors',
+ 'backers' => 'If you\'d like to support future development, check out the Cachet Patreon campaign.',
+ 'thank-you' => 'Thank you to each and every one of the :count contributors.',
+ ],
+ ],
+
+ // Login
+ 'login' => [
+ 'login' => 'Login',
+ 'logged_in' => 'You\'re logged in.',
+ 'welcome' => 'Welcome back!',
+ 'two-factor' => 'Please enter your token.',
+ ],
+
+ // Sidebar footer
+ 'help' => 'Help',
+ 'status_page' => 'Status Page',
+ 'logout' => 'Logout',
+
+ // Notifications
+ 'notifications' => [
+ 'notifications' => 'Notifications',
+ 'awesome' => 'Awesome.',
+ 'whoops' => 'Whoops.',
+ ],
+
+ // Widgets
+ 'widgets' => [
+ 'support' => 'Support Cachet',
+ 'support_subtitle' => 'Check out our Patreon page!',
+ 'news' => 'Latest News',
+ 'news_subtitle' => 'Get the latest update',
+ ],
+
+ // Welcome modal
+ 'welcome' => [
+ 'welcome' => 'Welcome to your new status page, :username!',
+ 'message' => 'You\'re almost ready but you might want to configure these extra settings first...',
+ 'close' => 'I\'m good thanks!',
+ 'steps' => [
+ 'component' => 'Add your components',
+ 'incident' => 'Create an incident',
+ 'customize' => 'Customize your page',
+ 'team' => 'Add your team',
+ 'api' => 'Generate an API token',
+ 'two-factor' => 'Setup Two Factor Authentication',
+ ],
+ ],
+
+];
diff --git a/resources/lang/et-EE/forms.php b/resources/lang/et-EE/forms.php
new file mode 100644
index 00000000..47a1a3e7
--- /dev/null
+++ b/resources/lang/et-EE/forms.php
@@ -0,0 +1,248 @@
+ [
+ 'email' => 'Email',
+ 'username' => 'Username',
+ 'password' => 'Password',
+ 'site_name' => 'Site Name',
+ 'site_domain' => 'Site Domain',
+ 'site_timezone' => 'Select your timezone',
+ 'site_locale' => 'Select your language',
+ 'enable_google2fa' => 'Enable Google Two Factor Authentication',
+ 'cache_driver' => 'Cache Driver',
+ 'queue_driver' => 'Queue Driver',
+ 'session_driver' => 'Session Driver',
+ 'mail_driver' => 'Mail Driver',
+ 'mail_host' => 'Mail Host',
+ 'mail_address' => 'Mail From Address',
+ 'mail_username' => 'Mail Username',
+ 'mail_password' => 'Mail Password',
+ ],
+
+ // Login form fields
+ 'login' => [
+ 'login' => 'Username or Email',
+ 'email' => 'Email',
+ 'password' => 'Password',
+ '2fauth' => 'Authentication Code',
+ 'invalid' => 'Invalid username or password',
+ 'invalid-token' => 'Invalid token',
+ 'cookies' => 'You must enable cookies to login.',
+ 'rate-limit' => 'Rate limit exceeded.',
+ 'remember_me' => 'Remember me',
+ ],
+
+ // Incidents form fields
+ 'incidents' => [
+ 'name' => 'Name',
+ 'status' => 'Status',
+ 'component' => 'Component',
+ 'component_status' => 'Component Status',
+ 'message' => 'Message',
+ 'message-help' => 'You may also use Markdown.',
+ 'occurred_at' => 'When did this incident occur?',
+ 'notify_subscribers' => 'Notify subscribers?',
+ 'notify_disabled' => 'Due to scheduled maintenance, notifications about this incident or its components will be suppressed.',
+ 'visibility' => 'Incident Visibility',
+ 'stick_status' => 'Stick Incident',
+ 'stickied' => 'Stickied',
+ 'not_stickied' => 'Not Stickied',
+ 'public' => 'Viewable by public',
+ 'logged_in_only' => 'Only visible to logged in users',
+ 'templates' => [
+ 'name' => 'Name',
+ 'template' => 'Template',
+ 'twig' => 'Incident Templates can make use of the Twig templating language.',
+ ],
+ ],
+
+ 'schedules' => [
+ 'name' => 'Name',
+ 'status' => 'Status',
+ 'message' => 'Message',
+ 'message-help' => 'You may also use Markdown.',
+ 'scheduled_at' => 'When is this maintenance scheduled for?',
+ 'completed_at' => 'When did this maintenance complete?',
+ 'templates' => [
+ 'name' => 'Name',
+ 'template' => 'Template',
+ 'twig' => 'Incident Templates can make use of the Twig templating language.',
+ ],
+ ],
+
+ // Components form fields
+ 'components' => [
+ 'name' => 'Name',
+ 'status' => 'Status',
+ 'group' => 'Group',
+ 'description' => 'Description',
+ 'link' => 'Link',
+ 'tags' => 'Tags',
+ 'tags-help' => 'Comma separated.',
+ 'enabled' => 'Component enabled?',
+
+ 'groups' => [
+ 'name' => 'Name',
+ 'collapsing' => 'Expand/Collapse options',
+ 'visible' => 'Always expanded',
+ 'collapsed' => 'Collapse the group by default',
+ 'collapsed_incident' => 'Collapse the group, but expand if there are issues',
+ 'visibility' => 'Visibility',
+ 'visibility_public' => 'Visible to public',
+ 'visibility_authenticated' => 'Visible only to logged in users',
+ ],
+ ],
+
+ // Action form fields
+ 'actions' => [
+ 'name' => 'Name',
+ 'description' => 'Description',
+ 'start_at' => 'Schedule start time',
+ 'timezone' => 'Timezone',
+ 'schedule_frequency' => 'Schedule frequency (in seconds)',
+ 'completion_latency' => 'Completion latency (in seconds)',
+ 'group' => 'Group',
+ 'active' => 'Active?',
+ 'groups' => [
+ 'name' => 'Group Name',
+ ],
+ ],
+
+ // Metric form fields
+ 'metrics' => [
+ 'name' => 'Name',
+ 'suffix' => 'Suffix',
+ 'description' => 'Description',
+ 'description-help' => 'You may also use Markdown.',
+ 'display-chart' => 'Display chart on status page?',
+ 'default-value' => 'Default value',
+ 'calc_type' => 'Calculation of metrics',
+ 'type_sum' => 'Sum',
+ 'type_avg' => 'Average',
+ 'places' => 'Decimal places',
+ 'default_view' => 'Default view',
+ 'threshold' => 'How many minutes of threshold between metric points?',
+ 'visibility' => 'Visibility',
+ 'visibility_authenticated' => 'Visible to authenticated users',
+ 'visibility_public' => 'Visible to everybody',
+ 'visibility_hidden' => 'Always hidden',
+
+ 'points' => [
+ 'value' => 'Value',
+ ],
+ ],
+
+ // Settings
+ 'settings' => [
+ // Application setup
+ 'app-setup' => [
+ 'site-name' => 'Site Name',
+ 'site-url' => 'Site URL',
+ 'display-graphs' => 'Display graphs on status page?',
+ 'about-this-page' => 'About this page',
+ 'days-of-incidents' => 'How many days of incidents to show?',
+ 'time_before_refresh' => 'Status page refresh rate (in seconds)',
+ 'major_outage_rate' => 'Major outage threshold (in %)',
+ 'banner' => 'Banner Image',
+ 'banner-help' => "It's recommended that you upload files no bigger than 930px wide",
+ 'subscribers' => 'Allow people to signup to email notifications?',
+ 'suppress_notifications_in_maintenance' => 'Suppress notifications when incident occurs during maintenance period?',
+ 'skip_subscriber_verification' => 'Skip verifying of users? (Be warned, you could be spammed)',
+ 'automatic_localization' => 'Automatically localise your status page to your visitor\'s language?',
+ 'enable_external_dependencies' => 'Enable Third Party Dependencies (Google Fonts, Trackers, etc...)',
+ 'show_timezone' => 'Show the timezone the status page is running in',
+ 'only_disrupted_days' => 'Only show days containing incidents in the timeline?',
+ ],
+ 'analytics' => [
+ 'analytics_google' => 'Google Analytics code',
+ 'analytics_gosquared' => 'GoSquared Analytics code',
+ 'analytics_piwik_url' => 'URL of your Piwik instance (without http(s)://)',
+ 'analytics_piwik_siteid' => 'Piwik\'s site id',
+ ],
+ 'localization' => [
+ 'site-timezone' => 'Site timezone',
+ 'site-locale' => 'Site language',
+ 'date-format' => 'Date format',
+ 'incident-date-format' => 'Incident timestamp format',
+ ],
+ 'security' => [
+ 'allowed-domains' => 'Allowed domains',
+ 'allowed-domains-help' => 'Comma separated. The domain set above is automatically allowed by default.',
+ 'always-authenticate' => 'Always authenticate',
+ 'always-authenticate-help' => 'Require login to view any Cachet page',
+ ],
+ 'stylesheet' => [
+ 'custom-css' => 'Custom Stylesheet',
+ ],
+ 'theme' => [
+ 'background-color' => 'Background color',
+ 'background-fills' => 'Background fills (components, incidents, footer)',
+ 'banner-background-color' => 'Banner background color',
+ 'banner-padding' => 'Banner padding',
+ 'fullwidth-banner' => 'Enable full width banner?',
+ 'text-color' => 'Text color',
+ 'dashboard-login' => 'Show dashboard button in the footer?',
+ 'reds' => 'Red (used for errors)',
+ 'blues' => 'Blue (used for information)',
+ 'greens' => 'Green (used for success)',
+ 'yellows' => 'Yellow (used for alerts)',
+ 'oranges' => 'Orange (used for notices)',
+ 'metrics' => 'Metrics fill',
+ 'links' => 'Links',
+ ],
+ ],
+
+ 'user' => [
+ 'username' => 'Username',
+ 'email' => 'Email',
+ 'password' => 'Password',
+ 'api-token' => 'API Token',
+ 'api-token-help' => 'Regenerating your API token will prevent existing applications from accessing Cachet.',
+ 'gravatar' => 'Change your profile picture at Gravatar.',
+ 'user_level' => 'User Level',
+ 'levels' => [
+ 'admin' => 'Admin',
+ 'user' => 'User',
+ ],
+ '2fa' => [
+ 'help' => 'Enabling two factor authentication increases security of your account. You will need to download Google Authenticator or a similar app on to your mobile device. When you login you will be asked to provide a token generated by the app.',
+ ],
+ 'team' => [
+ 'description' => 'Invite your team members by entering their email addresses here.',
+ 'email' => 'Your Team Members Email Address',
+ ],
+ ],
+
+ 'general' => [
+ 'timezone' => 'Select Timezone',
+ ],
+
+ // Buttons
+ 'add' => 'Add',
+ 'save' => 'Save',
+ 'update' => 'Update',
+ 'create' => 'Create',
+ 'edit' => 'Edit',
+ 'delete' => 'Delete',
+ 'submit' => 'Submit',
+ 'cancel' => 'Cancel',
+ 'remove' => 'Remove',
+ 'invite' => 'Invite',
+ 'signup' => 'Sign Up',
+ 'manage_updates' => 'Manage Updates',
+
+ // Other
+ 'optional' => '* Optional',
+];
diff --git a/resources/lang/et-EE/notifications.php b/resources/lang/et-EE/notifications.php
new file mode 100644
index 00000000..6a65c6bd
--- /dev/null
+++ b/resources/lang/et-EE/notifications.php
@@ -0,0 +1,108 @@
+ [
+ 'status_update' => [
+ 'mail' => [
+ 'subject' => 'Component Status Updated',
+ 'greeting' => 'A component\'s status was updated!',
+ 'content' => ':name status changed from :old_status to :new_status.',
+ 'action' => 'View',
+ ],
+ 'slack' => [
+ 'title' => 'Component Status Updated',
+ 'content' => ':name status changed from :old_status to :new_status.',
+ ],
+ 'sms' => [
+ 'content' => ':name status changed from :old_status to :new_status.',
+ ],
+ ],
+ ],
+ 'incident' => [
+ 'new' => [
+ 'mail' => [
+ 'subject' => 'New Incident Reported',
+ 'greeting' => 'A new incident was reported at :app_name.',
+ 'content' => 'Incident :name was reported',
+ 'action' => 'View',
+ ],
+ 'slack' => [
+ 'title' => 'Incident :name Reported',
+ 'content' => 'A new incident was reported at :app_name',
+ ],
+ 'sms' => [
+ 'content' => 'A new incident was reported at :app_name.',
+ ],
+ ],
+ 'update' => [
+ 'mail' => [
+ 'subject' => 'Incident Updated',
+ 'content' => ':name was updated',
+ 'title' => ':name was updated to :new_status',
+ 'action' => 'View',
+ ],
+ 'slack' => [
+ 'title' => ':name Updated',
+ 'content' => ':name was updated to :new_status',
+ ],
+ 'sms' => [
+ 'content' => 'Incident :name was updated',
+ ],
+ ],
+ ],
+ 'schedule' => [
+ 'new' => [
+ 'mail' => [
+ 'subject' => 'New Schedule Created',
+ 'content' => ':name was scheduled for :date',
+ 'title' => 'A new scheduled maintenance was created.',
+ 'action' => 'View',
+ ],
+ 'slack' => [
+ 'title' => 'New Schedule Created!',
+ 'content' => ':name was scheduled for :date',
+ ],
+ 'sms' => [
+ 'content' => ':name was scheduled for :date',
+ ],
+ ],
+ ],
+ 'subscriber' => [
+ 'verify' => [
+ 'mail' => [
+ 'subject' => 'Verify Your Subscription',
+ 'content' => 'Click to verify your subscription to :app_name status page.',
+ 'title' => 'Verify your subscription to :app_name status page.',
+ 'action' => 'Verify',
+ ],
+ ],
+ ],
+ 'system' => [
+ 'test' => [
+ 'mail' => [
+ 'subject' => 'Ping from Cachet!',
+ 'content' => 'This is a test notification from Cachet!',
+ 'title' => '🔔',
+ ],
+ ],
+ ],
+ 'user' => [
+ 'invite' => [
+ 'mail' => [
+ 'subject' => 'Your invitation is inside...',
+ 'content' => 'You have been invited to join :app_name status page.',
+ 'title' => 'You\'re invited to join :app_name status page.',
+ 'action' => 'Accept',
+ ],
+ ],
+ ],
+];
diff --git a/resources/lang/et-EE/pagination.php b/resources/lang/et-EE/pagination.php
new file mode 100644
index 00000000..0ee724cf
--- /dev/null
+++ b/resources/lang/et-EE/pagination.php
@@ -0,0 +1,28 @@
+ 'Previous',
+ 'next' => 'Next',
+
+];
diff --git a/resources/lang/et-EE/setup.php b/resources/lang/et-EE/setup.php
new file mode 100644
index 00000000..bdc2a457
--- /dev/null
+++ b/resources/lang/et-EE/setup.php
@@ -0,0 +1,23 @@
+ 'Setup',
+ 'title' => 'Install Cachet',
+ 'service_details' => 'Service Details',
+ 'env_setup' => 'Environment Setup',
+ 'status_page_setup' => 'Status Page Setup',
+ 'show_support' => 'Show support for Cachet?',
+ 'admin_account' => 'Administrator Account',
+ 'complete_setup' => 'Complete Setup',
+ 'completed' => 'Cachet has been configured successfully!',
+ 'finish_setup' => 'Go to dashboard',
+];
diff --git a/resources/lang/et-EE/validation.php b/resources/lang/et-EE/validation.php
new file mode 100644
index 00000000..7d196d98
--- /dev/null
+++ b/resources/lang/et-EE/validation.php
@@ -0,0 +1,122 @@
+ 'The :attribute must be accepted.',
+ 'active_url' => 'The :attribute is not a valid URL.',
+ 'after' => 'The :attribute must be a date after :date.',
+ 'alpha' => 'The :attribute may only contain letters.',
+ 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
+ '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.',
+ '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.',
+ 'email' => 'The :attribute must be a valid email address.',
+ 'exists' => 'The selected :attribute is invalid.',
+ 'distinct' => 'The :attribute field has a duplicate value.',
+ 'filled' => 'The :attribute field is required.',
+ '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.',
+ 'json' => 'The :attribute must be a valid JSON string.',
+ '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.',
+ '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.',
+ '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.',
+ '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' => [],
+
+];
diff --git a/resources/lang/ja-JP/cachet.php b/resources/lang/ja-JP/cachet.php
index 13456c42..c895be59 100644
--- a/resources/lang/ja-JP/cachet.php
+++ b/resources/lang/ja-JP/cachet.php
@@ -23,15 +23,15 @@ return [
'group' => [
'other' => 'その他のコンポーネント',
],
- 'select_all' => 'Select All',
- 'deselect_all' => 'Deselect All',
+ 'select_all' => '全て選択',
+ 'deselect_all' => '全て選択解除',
],
// Incidents
'incidents' => [
'none' => 'インシデントはありません',
'past' => 'インシデント履歴',
- 'stickied' => 'Stickied Incidents',
+ 'stickied' => '固定している障害情報',
'scheduled' => '計画メンテナンス',
'scheduled_at' => ', 予定日時 :timestamp',
'posted' => '掲載日時 :timestamp',
@@ -83,9 +83,9 @@ return [
'manage_subscription' => '購読の管理',
'manage' => [
'notifications' => 'Notifications',
- 'notifications_for' => 'Manage notifications for',
+ 'notifications_for' => '通知の管理',
'no_subscriptions' => '現在、すべてのアップデートを購読しています。',
- 'update_subscription' => 'Update Subscription',
+ 'update_subscription' => '購読の管理',
'my_subscriptions' => '現在、以下のアップデートを購読しています。',
'manage_at_link' => '購読の管理',
],
@@ -127,9 +127,9 @@ return [
// Meta descriptions
'meta' => [
'description' => [
- 'incident' => 'Details and updates about the :name incident that occurred on :date',
- 'schedule' => 'Details about the scheduled maintenance period :name starting :startDate',
- 'subscribe' => 'Subscribe to :app in order to receive updates of incidents and scheduled maintenance periods',
+ 'incident' => ':date に発生した:nameの障害情報',
+ 'schedule' => ':startDate に予定している:name のメンテナンスの詳細',
+ 'subscribe' => ':app の障害情報とメンテナンス情報を購読する',
'overview' => 'Stay up to date with the latest service updates from :app.',
],
],
diff --git a/yarn.lock b/yarn.lock
index 64d6c89f..ae72c725 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4742,9 +4742,9 @@ lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
-lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@~4.17.10:
- version "4.17.10"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
+lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@~4.17.10:
+ version "4.17.11"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
lodash@~1.0.1:
version "1.0.2"
@@ -7814,9 +7814,9 @@ vue-template-es2015-compiler@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz#dc42697133302ce3017524356a6c61b7b69b4a18"
-vue@^2.5.16:
- version "2.5.16"
- resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.16.tgz#07edb75e8412aaeed871ebafa99f4672584a0085"
+vue@^2.5.17:
+ version "2.5.17"
+ resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.17.tgz#0f8789ad718be68ca1872629832ed533589c6ada"
ware@^1.2.0:
version "1.3.0"