diff --git a/.gitignore b/.gitignore
index 838a0a8a..4404b7d9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
/config.php
/build
/docs/_build
+/vendor/
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
old mode 100755
new mode 100644
index 1b035fce..b270fb28
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,8 +1,41 @@
Changelog
=========
+v3.1.0 (released August 7, 2014)
+--------------------------------
+
+Features:
+
+* #52: Uptime percentage per server for the last week.
+* #101: Pushover.net support.
+* #54: Improved phone/tablet compatibility.
+* #75: Test mode for email and SMS settings.
+* #86: Different design styles on status page (list, table).
+* #82: Added Danish translation.
+* #103: Added Russian translation.
+* #109: Custom time-out per server.
+* #119: Log and archive retention period.
+* #110: Support for SMSGlobal SMS gateway .
+* #82: Support for Danish SMS provider Smsit
+
+Bugs:
+
+* #50: Validation on servers page.
+* #62: Replace javascript confirm dialogs with Bootstrap modal dialogs.
+* #66: Unable to add users with MySQL in strict mode.
+* #83: Invalid redirect after switching languages and logging in.
+* #105: Fixing check for websites with unverified SSL certificates.
+* #107: Fixing update job for Synology DSM Task Scheduler.
+* #108: URLs on Windows contained both back- and forward slashes.
+* #111: Generated urls for non-default ports included the port twice.
+* #28: Permission denied page.
+* #53: User selection on server edit page.
+* #115: Warning on server page when notifications are disabled.
+* #117: Template service has been replaced by Twig.
+* Composer added for dependencies.
+
v3.0.1 (released April 12, 2014)
-----------------
+--------------------------------
* #56: Minimum PHP version is PHP 5.3.7 (not PHP 5.3.0).
* #58: Server order on users page now matches the order on servers page.
diff --git a/Makefile b/Makefile
index e54754a6..f4c6d585 100755
--- a/Makefile
+++ b/Makefile
@@ -1,29 +1,45 @@
tag = $(shell git describe)
+VERSION = ${subst v,,$(tag)}
+RELEASE_DIR = ./build
+RELEASE_FILE = phpservermon-$(VERSION)
help:
- @echo ' PHP Server Monitor - $(tag) '
- @echo ' - make export [tag=...] - create a new release from tag '
+ @echo ' PHP Server Monitor - $(tag)'
+ @echo ' - make export [tag=...] - create a new release from tag '
+ @echo ' - make install - install all dependencies '
+
+install:
+ @echo 'Downloading dependencies using Composer'
+ php composer.phar install
+ @echo 'Install complete '
export:
@echo 'Building release for tag $(tag) '
- mkdir -p ./build ./build/phpservermon
- rm -rf ./build/phpservermon/*
- git archive $(tag) | tar -xf - -C ./build/phpservermon/
+ mkdir -p $(RELEASE_DIR) $(RELEASE_DIR)/$(RELEASE_FILE)
+ rm -rf $(RELEASE_DIR)/$(RELEASE_FILE)/*
+ git archive $(tag) | tar -xf - -C $(RELEASE_DIR)/$(RELEASE_FILE)/
+ #find $(RELEASE_DIR)/$(RELEASE_FILE) -name "*.php" -exec sed -i "" "s/@package_version@/$(tag)/" {} \; # for osx
+ find $(RELEASE_DIR)/$(RELEASE_FILE) -name "*.php" -exec sed -i "s/@package_version@/$(tag)/" {} \; # for linux
@echo 'Testing on syntax errors (thats all the automated testing your are going to get for now..) '
- find ./build/phpservermon -name "*.php" | xargs -I file php -l file
- find ./build/phpservermon -name "*.php" -exec sed -i "" "s/@package_version@/$(tag)/" {} \;
- @echo 'Building HTML documentation'
- cd ./build/phpservermon/docs; make BUILDDIR=. html; cd ../../../;
+ find $(RELEASE_DIR)/$(RELEASE_FILE) -name "*.php" | xargs -I file php -l file
+ @echo 'Downloading dependencies'
+ cd $(RELEASE_DIR)/$(RELEASE_FILE); php composer.phar install; php composer.phar dump-autoload --optimize; cd ../../;
+ rm -f $(RELEASE_DIR)/$(RELEASE_FILE)/composer.phar
+ rm -f $(RELEASE_DIR)/$(RELEASE_FILE)/composer.json
+ rm -f $(RELEASE_DIR)/$(RELEASE_FILE)/composer.lock
+ @echo 'Building HTML documentation using sphinx (http://sphinx-doc.org/)'
+ mkdir -p $(RELEASE_DIR)/$(RELEASE_FILE)/docs/html
+ cd $(RELEASE_DIR)/$(RELEASE_FILE)/docs; make BUILDDIR=. html; cd ../../../;
@echo 'Cleaning up docs dir'
- rm -f ./build/phpservermon/Makefile
- rm -f ./build/phpservermon/docs/Makefile
- rm -f ./build/phpservermon/docs/make.bat
- rm -f ./build/phpservermon/docs/conf.py
+ rm -f $(RELEASE_DIR)/$(RELEASE_FILE)/Makefile
+ rm -f $(RELEASE_DIR)/$(RELEASE_FILE)/docs/Makefile
+ rm -f $(RELEASE_DIR)/$(RELEASE_FILE)/docs/make.bat
+ rm -f $(RELEASE_DIR)/$(RELEASE_FILE)/docs/conf.py
@echo 'Setting folder and file permissions'
- find ./build/phpservermon -type f | xargs chmod 0644
- find ./build/phpservermon -type d | xargs chmod 0755
+ find $(RELEASE_DIR)/$(RELEASE_FILE) -type f | xargs chmod 0644
+ find $(RELEASE_DIR)/$(RELEASE_FILE) -type d | xargs chmod 0755
@echo 'Creating archives'
- cd ./build; zip -rq phpservermon-$(tag).zip ./phpservermon; cd ../;
- cd ./build; tar -pczf phpservermon-$(tag).tar.gz ./phpservermon; cd ../;
- rm -rf ./build/phpservermon
+ cd $(RELEASE_DIR); zip -rq $(RELEASE_FILE).zip ./$(RELEASE_FILE); cd ../;
+ cd $(RELEASE_DIR); tar -pczf $(RELEASE_FILE).tar.gz ./$(RELEASE_FILE); cd ../;
+ #rm -rf $(RELEASE_DIR)/$(RELEASE_FILE)
@echo 'Building release finished '
diff --git a/README.rst b/README.rst
index 4dce7196..e57bdc11 100755
--- a/README.rst
+++ b/README.rst
@@ -1,7 +1,7 @@
PHP Server Monitor
==================
-Version 3.0.1
+Version 3.1.0
PHP Server Monitor is a script that checks whether your websites and servers are up and running.
It comes with a web based user interface where you can manage your services and websites,
@@ -12,7 +12,7 @@ Features:
---------
* Monitor services and websites (see below).
-* Email and SMS notifications.
+* Email, SMS and Pushover notifications.
* View history graphs of uptime and latency.
* User authentication with 2 levels (administrator and regular user).
* Logs of connection errors, outgoing emails and text messages.
@@ -35,14 +35,16 @@ There are two different ways to monitor a server:
In both cases the script will return a "status offline", and will start sending out notifications.
Each server has its own settings regarding notification.
-You can choose for email notification or text message (SMS).
+You can choose for email, text message (SMS) and Pushover.net notifications.
The following SMS gateways are currently available:
-* Mollie -
-* Spryng -
-* Inetworx -
* Clickatell -
+* Inetworx -
+* Mollie -
* Mosms -
+* Smsglobal -
+* SMSit -
+* Spryng -
* Textmarketer -
Please note: for these gateways you will need an account with sufficient credits.
@@ -70,6 +72,12 @@ Install
Please see docs/install.rst.
In a nutshell: unzip, upload, run install.php, enjoy.
+If you have downloaded the source from GitHub (and not a pre-built package), the dependencies are not included.
+To be able to run an installation from the repo, you need to run the following command to install the dependencies::
+
+ php composer.phar install
+
+
Documentation
-------------
diff --git a/composer.json b/composer.json
new file mode 100755
index 00000000..b3331228
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,18 @@
+{
+ "name": "phpservermon/phpservermon",
+ "description": "PHP Server Monitor",
+ "homepage": "http://www.phpservermonitor.org",
+ "repositories": [
+ {
+ "type": "vcs",
+ "url": "https://github.com/phpservermon/php-pushover"
+ }
+ ],
+ "require": {
+ "php": ">=5.3.7",
+ "phpmailer/phpmailer": "5.2.6",
+ "symfony/http-foundation": "2.4.*",
+ "php-pushover/php-pushover": "dev-master",
+ "twig/twig": "1.*"
+ }
+}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 00000000..48e948b7
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,216 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
+ ],
+ "hash": "1d763e23381a086e18f83644bd89f16c",
+ "packages": [
+ {
+ "name": "php-pushover/php-pushover",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpservermon/php-pushover.git",
+ "reference": "d13d08dbf5f1cfa73f4adca7e8d27f79c804dd7b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpservermon/php-pushover/zipball/d13d08dbf5f1cfa73f4adca7e8d27f79c804dd7b",
+ "reference": "d13d08dbf5f1cfa73f4adca7e8d27f79c804dd7b",
+ "shasum": ""
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Pushover.php"
+ ]
+ },
+ "description": "PHP class for the Pushover.net project",
+ "support": {
+ "source": "https://github.com/phpservermon/php-pushover/tree/master"
+ },
+ "time": "2014-07-30 13:55:53"
+ },
+ {
+ "name": "phpmailer/phpmailer",
+ "version": "v5.2.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPMailer/PHPMailer.git",
+ "reference": "4d9434e394496a5bb7acd9e73046587184b413df"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/4d9434e394496a5bb7acd9e73046587184b413df",
+ "reference": "4d9434e394496a5bb7acd9e73046587184b413df",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.0.0"
+ },
+ "require-dev": {
+ "phpdocumentor/phpdocumentor": "*",
+ "phpunit/phpunit": "*"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "class.phpmailer.php",
+ "class.pop3.php",
+ "class.smtp.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-2.1"
+ ],
+ "authors": [
+ {
+ "name": "Jim Jagielski",
+ "email": "jimjag@gmail.com"
+ },
+ {
+ "name": "Marcus Bointon",
+ "email": "phpmailer@synchromedia.co.uk"
+ },
+ {
+ "name": "Andy Prevost",
+ "email": "codeworxtech@users.sourceforge.net"
+ },
+ {
+ "name": "Brent R. Matzelle"
+ }
+ ],
+ "description": "PHPMailer is a full-featured email creation and transfer class for PHP",
+ "time": "2013-04-11 16:45:39"
+ },
+ {
+ "name": "symfony/http-foundation",
+ "version": "v2.4.8",
+ "target-dir": "Symfony/Component/HttpFoundation",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/HttpFoundation.git",
+ "reference": "68abe34601c519359b60363b99c29ecfb6679bc4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/68abe34601c519359b60363b99c29ecfb6679bc4",
+ "reference": "68abe34601c519359b60363b99c29ecfb6679bc4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "symfony/expression-language": "~2.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.4-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Symfony\\Component\\HttpFoundation\\": ""
+ },
+ "classmap": [
+ "Symfony/Component/HttpFoundation/Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com",
+ "homepage": "http://fabien.potencier.org",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "http://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony HttpFoundation Component",
+ "homepage": "http://symfony.com",
+ "time": "2014-07-15 14:07:10"
+ },
+ {
+ "name": "twig/twig",
+ "version": "v1.16.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/fabpot/Twig.git",
+ "reference": "8ce37115802e257a984a82d38254884085060024"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/fabpot/Twig/zipball/8ce37115802e257a984a82d38254884085060024",
+ "reference": "8ce37115802e257a984a82d38254884085060024",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.2.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.16-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Twig_": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com",
+ "homepage": "http://fabien.potencier.org",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Armin Ronacher",
+ "email": "armin.ronacher@active-4.com",
+ "role": "Project Founder"
+ },
+ {
+ "name": "Twig Team",
+ "homepage": "https://github.com/fabpot/Twig/graphs/contributors",
+ "role": "Contributors"
+ }
+ ],
+ "description": "Twig, the flexible, fast, and secure template language for PHP",
+ "homepage": "http://twig.sensiolabs.org",
+ "keywords": [
+ "templating"
+ ],
+ "time": "2014-07-05 12:19:05"
+ }
+ ],
+ "packages-dev": [
+
+ ],
+ "aliases": [
+
+ ],
+ "minimum-stability": "stable",
+ "stability-flags": {
+ "php-pushover/php-pushover": 20
+ },
+ "platform": {
+ "php": ">=5.3.7"
+ },
+ "platform-dev": [
+
+ ]
+}
diff --git a/composer.phar b/composer.phar
new file mode 100644
index 00000000..1e9ca731
Binary files /dev/null and b/composer.phar differ
diff --git a/config.php.sample b/config.php.sample
index 2246f244..667afe2e 100755
--- a/config.php.sample
+++ b/config.php.sample
@@ -4,4 +4,4 @@ define('PSM_DB_USER', 'db_user');
define('PSM_DB_PASS', 'db_pass');
define('PSM_DB_NAME', 'db_name');
define('PSM_DB_HOST', 'localhost');
-?>
+
diff --git a/cron/status.cron.php b/cron/status.cron.php
index 5145b4b3..9b6ce773 100644
--- a/cron/status.cron.php
+++ b/cron/status.cron.php
@@ -39,12 +39,12 @@ $time = time();
if(psm_get_conf('cron_running') == 1 && ($time - psm_get_conf('cron_running_time') < PSM_CRON_TIMEOUT)) {
die('Cron is already running. Exiting.');
}
-if(!PSM_DEBUG) {
+if(!defined('PSM_DEBUG') || !PSM_DEBUG) {
psm_update_conf('cron_running', 1);
}
psm_update_conf('cron_running_time', $time);
-$autorun = new \psm\Util\Updater\Autorun($db);
+$autorun = new \psm\Util\Server\UpdateManager($db);
$autorun->run();
psm_update_conf('cron_running', 0);
diff --git a/docs/conf.py b/docs/conf.py
index b8104397..3ab40df6 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -51,7 +51,7 @@ copyright = u'2008-2014, Pepijn Over'
# built documents.
#
# The short X.Y version.
-version = '3.0.1'
+version = '3.1.0'
# The full version, including alpha/beta/rc tags.
release = version
diff --git a/docs/credits.rst b/docs/credits.rst
index dad84d3d..850b44ed 100644
--- a/docs/credits.rst
+++ b/docs/credits.rst
@@ -9,32 +9,32 @@ Credits
The following people have contributed to the development of PHP Server Monitor:
-* Pepijn Over
+* Pepijn Over - https://github.com/dopeh
* Creator and project maintainer
-* Jérôme Cabanis
+* Jérôme Cabanis - https://github.com/Abawell
* History graphs
* Date localization
* Mobile compatibility
* Various fixes and improvements
-* Perri Vardy-Mason
+* Perri Vardy-Mason - https://github.com/VeoPVM
* Textmarketer SMS gateway
* Various fixes and improvements
-* Luiz Alberto S. Ribeiro
+* Luiz Alberto S. Ribeiro - https://github.com/madeinnordeste
* Bootstrap implementation
* Portuguese Brazilian translation
-* Michael Greenhill
+* Michael Greenhill - https://github.com/doctorjbeam
* Status page
-* Andreas Ek
+* Andreas Ek - https://github.com/EkAndreas
* Mosms SMS gateway
@@ -42,6 +42,25 @@ The following people have contributed to the development of PHP Server Monitor:
* Website pattern / regular expression search
+* nerdalertdk - https://github.com/nerdalertdk
+
+ * Smsit SMS gateway
+
+* Victor Macko - https://github.com/victormacko
+
+ * SMSGlobal SMS gateway
+
+* Julien Lebouteiller - https://github.com/Halvra
+
+ * Custom time-out per server
+
+* Mathias Lange - https://github.com/remmedia
+
+ * Pushover.net support
+
+* Alexander Moore - http://www.famfamfam.com
+
+ * Icon
Translators
+++++++++++
@@ -50,11 +69,15 @@ The following people have contributed to the translation of PHP Server Monitor:
* Chinese
- * manhere
+ * manhere - https://github.com/manhere
* Bulgarian
- * Plamen Vasilev
+ * Plamen Vasilev - https://github.com/PVasileff
+
+* Danish
+
+ * nerdalertdk
* French
@@ -79,7 +102,13 @@ The following people have contributed to the translation of PHP Server Monitor:
* Spanish
- * Klemens Häckel
+ * Klemens Häckel - http://clickdimension.wordpress.com
+
+* Russian
+
+ * Roman Beylin - https://github.com/roman-beylin
+ * Yuriy Lyutov - https://github.com/delysh
+
Vendors
+++++++
@@ -88,4 +117,7 @@ The following libraries are being used by PHP Server Monitor:
* jqPlot - http://www.jqplot.com
* Twitter Bootstrap - http://getbootstrap.com
-* PHP Mailer - https://github.com/PHPMailer/PHPMailer
\ No newline at end of file
+* Bootstrap Multiselect - https://github.com/davidstutz/bootstrap-multiselect
+* PHP Mailer - https://github.com/PHPMailer/PHPMailer
+* php-pushover - https://github.com/kryap/php-pushover
+* Twig - http://twig.sensiolabs.org
diff --git a/docs/developers.rst b/docs/developers.rst
index 66c5417c..d0e8ed38 100644
--- a/docs/developers.rst
+++ b/docs/developers.rst
@@ -8,4 +8,50 @@ There is a master branch, which is stable and always reflects the latest release
The develop branch is used for ongoing development and should not be considered stable.
If you would like to contribute a patch or feature, please fork the develop branch and send a pull request.
-More information can be found in the wiki at https://github.com/phpservermon/phpservermon/wiki.
\ No newline at end of file
+Languages
++++++++++
+
+The server monitor uses language files, which are stored in the directory "src/lang".
+The name of the language file consists of the language code (ISO 639-1) and the country code (ISO 3166-1), separated by an underscore.
+The extension is ".lang.php".
+
+Locales
+-------
+
+Each language file should contain a 'locale' key which can be used for formatting dates and times. This 'locale' key must include the locales for different server environments:
+
+* Linux / OS X: same as filename (language code and country code separated by underscore)
+* Windows: http://msdn.microsoft.com/en-US/library/39cwe7zf%28v=vs.80%29.aspx
+
+For more information, see http://www.php.net/manual/en/function.setlocale.php
+
+Adding a new language
+---------------------
+
+To add a new language, follow these steps:
+
+* Create a new file in the directory "src/lang" named "{locale}.lang.php".
+* Copy the contents of the file "en_US.lang.php" to your new file.
+* Your new language should now be available on the config page.
+* Translate :-)
+* Please send a pull request on github (https://github.com/phpservermon/phpservermon) so it can be included in the next release :-)
+
+
+Getting started
++++++++++++++++
+
+All code related to phpservermon lives in the "psm" namespace, which can be found under "src/psm".
+
+The Router (https://github.com/phpservermon/phpservermon/blob/develop/src/psm/Router.class.php) is used to load the modules.
+All modules are registered inside the Router class with a unique ID (see getModules()), and can either be loaded manually ($router->run('mod')), or if no module is given it will attempt to discover the module from the $_GET['mod'] var.
+If no valid module or controller is found, it will fall back to the default module.
+
+The module var may exist of 2 parts, separated by an underscore. The first part is the ID of the module, and the second part is the ID of the controller registered in the module.
+If no controller ID is found, it will attempt to load the controller with the same ID as the module.
+
+Examples ::
+
+ $router->run('config'); // module ID "config" and controller ID also "config" (same as $router->run('config_config'))
+ $router->run('server_status'); // module ID "server" and controller ID "status"
+
+If the user is not logged in and login is required, it will automatically load the user login controller without throwing an error.
\ No newline at end of file
diff --git a/docs/faq.rst b/docs/faq.rst
index a84d4efb..a0c216c5 100644
--- a/docs/faq.rst
+++ b/docs/faq.rst
@@ -25,6 +25,37 @@ Regular users:
* Run the updater on their assigned servers.
+Servers
++++++++
+
+What is the difference between a service and a website?
+-------------------------------------------------------
+
+For websites, the monitor attempts to open a regular web page, just like you do in your browser.
+It will attempt to retrieve its contents, and also check the HTTP status code (for example "404 not found" will cause an error).
+You can then even add a check to make sure the content of the website includes a certain string or matches a certain regular expression.
+Please note, it only retrieves the contents and does not execute any Javascript. Your search pattern will not work if it depends on Javascript being executed.
+
+For services, the monitor only attempts to connect to the IP address and specified port to check whether the server is listening on that port.
+For example, if you are running a webserver it will usually listen on port 80 for incoming connections.
+So if the monitor is able to connect to the server on port 80, you know the webserver is running and accepting connections.
+It does not, however, mean that your website is available to your users, because it might have PHP errors or database problems.
+This can be monitored using the website type with a pattern search as described above.
+
+Are requests made by the monitor included in my website statistics?
+-------------------------------------------------------------------
+
+There are two different ways to gather statistics.
+One way is to include a piece of Javascript in your HTML, e.g. for Google Analytics and Piwik.
+The other way is to parse the access logs created by your webserver software, which does not require any changes to your code, and is done by tools like Awstats.
+
+When using tools such as Google Analytics, the monitor requests will not show up in your statistics, because the monitor does not execute any Javascript.
+Tools that parse your raw access logs like Awstats, will include the requests made by the monitor.
+To make sure these requests can be identified, the monitor uses a custom user agent, which you can usually filter out. The user agent of the monitor looks like::
+
+ Mozilla/5.0 (compatible; phpservermon/3.0.1; +http://www.phpservermonitor.org)
+
+
Configuration
+++++++++++++
diff --git a/docs/install.rst b/docs/install.rst
index 930468e4..ca95e03b 100644
--- a/docs/install.rst
+++ b/docs/install.rst
@@ -64,6 +64,15 @@ One of the new features introduced in 3.0 is a user authentication system. Becau
For that reason the upgrade script will ask you to create a new account during the upgrade, which you can then use to change the password for the existing accounts.
If, for whatever reason this does not work, the upgrade script automatically changes the username of all existing users to their email addresses, which you could use for the forgot password screen.
+
+Installing from GitHub
+++++++++++++++++++++++
+If you have downloaded the source from GitHub (and not a pre-built package), the dependencies are not included.
+To be able to run an installation from the repo, you need to run the following command to install the dependencies::
+
+ php composer.phar install
+
+
Setting up a cronjob
++++++++++++++++++++
@@ -78,10 +87,15 @@ If it is your own server or you have shell access and permission to open the cro
As you can see, this line will run the status.cron.php script every 15 minutes. Change the line to suit your needs.
If you do not have shell access, ask your web hosting provider to set it up for you.
+Please note that some distros have user-specific crontabs (e.g. Debian). If that is the case, you need to omit the user part::
+
+ */15 * * * * /usr/bin/php /var/www/html/phpservermon/cron/status.cron.php
+
The update script has been designed to prevent itself from running multiple times. It has a maximum timeout of 10 minutes.
After that the script is assumed dead and the cronjob will run again.
If you want to change the 10 minutes timeout, find the constant "PSM_CRON_TIMEOUT" in src/includes/psmconfig.inc.php.
+
Troubleshooting
+++++++++++++++
diff --git a/docs/intro.rst b/docs/intro.rst
index ac2334c9..daaea398 100644
--- a/docs/intro.rst
+++ b/docs/intro.rst
@@ -15,7 +15,7 @@ Features
++++++++
* Monitor services and websites (see below).
-* Email and SMS notifications.
+* Email, SMS and Pushover notifications.
* View history graphs of uptime and latency.
* User authentication with 2 levels (administrator and regular user).
* Logs of connection errors, outgoing emails and text messages.
@@ -44,14 +44,22 @@ There are two different ways to monitor a server:
Notifications
-------------
Each server has its own settings regarding notification.
-You can choose for email notification or text message (SMS).
+You can choose for email, text message (SMS) and Pushover.net notifications.
The following SMS gateways are currently available:
-* Mollie - http://www.mollie.nl
-* Spryng - http://www.spryng.nl
-* Inetworx - http://www.inetworx.ch
-* Clickatell - https://www.clickatell.com
-* Mosms - http://www.mosms.com
-* Textmarketer - http://www.textmarketer.co.uk
+* Clickatell -
+* Inetworx -
+* Mollie -
+* Mosms -
+* Smsglobal -
+* SMSit -
+* Spryng -
+* Textmarketer -
Please note: for these gateways you will need an account with sufficient credits.
+
+
+Download
+++++++++
+
+The latest version can be downloaded from http://www.phpservermonitor.org/.
\ No newline at end of file
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 00000000..731bd77f
Binary files /dev/null and b/favicon.ico differ
diff --git a/favicon.png b/favicon.png
new file mode 100644
index 00000000..9d4d5f28
Binary files /dev/null and b/favicon.png differ
diff --git a/src/bootstrap.php b/src/bootstrap.php
index 2d338091..486c9b41 100644
--- a/src/bootstrap.php
+++ b/src/bootstrap.php
@@ -28,7 +28,6 @@
// Include paths
define('PSM_PATH_SRC', dirname(__FILE__) . DIRECTORY_SEPARATOR);
-define('PSM_PATH_VENDOR', PSM_PATH_SRC . '..' . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR);
define('PSM_PATH_INC', PSM_PATH_SRC . 'includes' . DIRECTORY_SEPARATOR);
define('PSM_PATH_TPL', PSM_PATH_SRC . 'templates' . DIRECTORY_SEPARATOR);
define('PSM_PATH_LANG', PSM_PATH_SRC . 'lang' . DIRECTORY_SEPARATOR);
@@ -48,7 +47,10 @@ if(file_exists($path_conf)) {
include_once $path_conf;
}
// check for a debug var
-if(defined('PSM_DEBUG') && PSM_DEBUG) {
+if(!defined('PSM_DEBUG')) {
+ define('PSM_DEBUG', false);
+}
+if(PSM_DEBUG) {
error_reporting(E_ALL);
ini_set('display_erors', 1);
} else {
@@ -56,29 +58,28 @@ if(defined('PSM_DEBUG') && PSM_DEBUG) {
ini_set('display_errors', 0);
}
+$vendor_autoload = PSM_PATH_SRC . '..' . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
+if(!file_exists($vendor_autoload)) {
+ die('No dependencies found in vendor dir. Did you install the dependencies? Please run "php composer.phar install".');
+}
+require_once $vendor_autoload;
+
// set autoloader, make sure to set $prepend = true so that our autoloader is called first
-function __autoload($class) {
+spl_autoload_register(function($class) {
// remove leading \
$class = ltrim($class, '\\');
$path_parts = explode('\\', $class);
$filename = array_pop($path_parts);
- $path = implode(DIRECTORY_SEPARATOR, $path_parts) .
+ $path = PSM_PATH_SRC . implode(DIRECTORY_SEPARATOR, $path_parts) .
DIRECTORY_SEPARATOR .
$filename . '.class.php'
;
- // search in these dirs:
- $basedirs = array(
- PSM_PATH_SRC,
- PSM_PATH_VENDOR
- );
- foreach($basedirs as $dir) {
- if(file_exists($dir . $path)) {
- require_once $dir . $path;
- return;
- }
+ if(file_exists($path)) {
+ require_once $path;
+ return;
}
-}
+});
// auto-find all include files
$includes = glob(PSM_PATH_INC . '*.inc.php');
@@ -89,14 +90,7 @@ foreach($includes as $file) {
$db = new psm\Service\Database();
// sanity check!
-if(defined('PSM_INSTALL') && PSM_INSTALL) {
- // install mode
- if($db->status()) {
- // connection established, attempt to load config.
- // no biggie if it doesnt work because the user is still in the install module.
- psm_load_conf();
- }
-} else {
+if(!defined('PSM_INSTALL') || !PSM_INSTALL) {
if($db->getDbHost() === null) {
// no config file has been loaded, redirect the user to the install
header('Location: install.php');
diff --git a/src/includes/functions.inc.php b/src/includes/functions.inc.php
index 89c02fd7..829de923 100644
--- a/src/includes/functions.inc.php
+++ b/src/includes/functions.inc.php
@@ -111,7 +111,6 @@ function psm_get_langs() {
/**
* Get a setting from the config.
- * The config must have been loaded first using psm_load_conf()
*
* @param string $key
* @param mixed $alt if not set, return this alternative
@@ -119,6 +118,9 @@ function psm_get_langs() {
* @see psm_load_conf()
*/
function psm_get_conf($key, $alt = null) {
+ if(!isset($GLOBALS['sm_config'])) {
+ psm_load_conf();
+ }
$result = (isset($GLOBALS['sm_config'][$key])) ? $GLOBALS['sm_config'][$key] : $alt;
return $result;
@@ -134,9 +136,11 @@ function psm_get_conf($key, $alt = null) {
function psm_load_conf() {
global $db;
- // load config from database into global scope
$GLOBALS['sm_config'] = array();
+ if(!defined('PSM_DB_PREFIX') || !$db->status()) {
+ return false;
+ }
if(!$db->ifTableExists(PSM_DB_PREFIX.'config')) {
return false;
}
@@ -163,13 +167,10 @@ function psm_load_conf() {
function psm_update_conf($key, $value) {
global $db;
- $result = $db->save(
- PSM_DB_PREFIX.'config',
- array('value' => $value),
- array('key' => $key)
- );
- // save returns the # rows updated, if 0, key doenst exist yet
- if($result === 0) {
+ // check if key exists
+ $exists = psm_get_conf($key, false);
+ if($exists === false) {
+ // add new config record
$db->save(
PSM_DB_PREFIX . 'config',
array(
@@ -177,6 +178,12 @@ function psm_update_conf($key, $value) {
'value' => $value,
)
);
+ } else {
+ $db->save(
+ PSM_DB_PREFIX.'config',
+ array('value' => $value),
+ array('key' => $key)
+ );
}
$GLOBALS['sm_config'][$key] = $value;
}
@@ -260,16 +267,20 @@ function psm_parse_msg($status, $type, $vars) {
* @param string $href
* @param boolean $header return headers?
* @param boolean $body return body?
- * @param int $timeout connection timeout in seconds
+ * @param int $timeout connection timeout in seconds. defaults to PSM_CURL_TIMEOUT (10 secs).
* @param boolean $add_agent add user agent?
* @return string cURL result
*/
-function psm_curl_get($href, $header = false, $body = true, $timeout = 10, $add_agent = true) {
+function psm_curl_get($href, $header = false, $body = true, $timeout = null, $add_agent = true) {
+ $timeout = $timeout == null ? PSM_CURL_TIMEOUT : intval($timeout);
+
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, $header);
curl_setopt($ch, CURLOPT_NOBODY, (!$body));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_ENCODING, '');
@@ -335,12 +346,9 @@ function psm_date($time) {
* Check if an update is available for PHP Server Monitor.
*
* Will only check for new version if user turned updates on in config.
- * @global object $db
* @return boolean
*/
function psm_update_available() {
- global $db;
-
if(!psm_get_conf('show_update')) {
// user does not want updates, fair enough.
return false;
@@ -370,15 +378,15 @@ function psm_update_available() {
}
/**
- * Prepare a new Mailer util.
+ * Prepare a new phpmailer instance.
*
* If the from name and email are left blank they will be prefilled from the config.
* @param string $from_name
* @param string $from_email
- * @return \psm\Util\Mailer
+ * @return \PHPMailer
*/
function psm_build_mail($from_name = null, $from_email = null) {
- $phpmailer = new \psm\Util\Mailer();
+ $phpmailer = new \PHPMailer();
$phpmailer->Encoding = "base64";
$phpmailer->SMTPDebug = false;
@@ -409,30 +417,93 @@ function psm_build_mail($from_name = null, $from_email = null) {
return $phpmailer;
}
+/**
+ * Prepare a new Pushover util.
+ *
+ * @return \Pushover
+ */
+function psm_build_pushover() {
+ $pushover = new \Pushover();
+ $pushover->setToken(psm_get_conf('pushover_api_token'));
+
+ return $pushover;
+}
+
+/**
+ * Prepare a new SMS util.
+ *
+ * @return \psm\Txtmsg\TxtmsgInterface
+ */
+function psm_build_sms() {
+ $sms = null;
+
+ // open the right class
+ // not making this any more dynamic, because perhaps some gateways need custom settings (like Mollie)
+ switch(strtolower(psm_get_conf('sms_gateway'))) {
+ case 'mosms':
+ $sms = new \psm\Txtmsg\Mosms();
+ break;
+ case 'smsit':
+ $sms = new \psm\Txtmsg\Smsit();
+ break;
+ case 'inetworx':
+ $sms = new \psm\Txtmsg\Inetworx();
+ break;
+ case 'mollie':
+ $sms = new \psm\Txtmsg\Mollie();
+ $sms->setGateway(1);
+ break;
+ case 'spryng':
+ $sms = new \psm\Txtmsg\Spryng();
+ break;
+ case 'clickatell':
+ $sms = new \psm\Txtmsg\Clickatell();
+ break;
+ case 'textmarketer':
+ $sms = new \psm\Txtmsg\Textmarketer();
+ break;
+ case 'smsglobal':
+ $sms = new \psm\Txtmsg\Smsglobal();
+ break;
+ }
+
+ // copy login information from the config file
+ if($sms) {
+ $sms->setLogin(psm_get_conf('sms_gateway_username'), psm_get_conf('sms_gateway_password'));
+ $sms->setOriginator(psm_get_conf('sms_from'));
+ }
+
+ return $sms;
+}
+
/**
* Generate a new link to the current monitor
- * @param array $params key value pairs
+ * @param array|string $params key value pairs or pre-formatted string
* @param boolean $urlencode urlencode all params?
* @param boolean $htmlentities use entities in url?
* @return string
*/
function psm_build_url($params = array(), $urlencode = true, $htmlentities = true) {
- $defports = array(80, 443);
$url = ($_SERVER['SERVER_PORT'] == 443 ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'];
- if(!in_array($_SERVER['SERVER_PORT'], $defports)) {
- $url .= ':' . $_SERVER['SERVER_PORT'];
- }
+
+ // on Windows, dirname() adds both back- and forward slashes (http://php.net/dirname).
+ // for urls, we only want the forward slashes.
$url .= dirname($_SERVER['SCRIPT_NAME']) . '/';
+ $url = str_replace('\\', '', $url);
if($params != null) {
$url .= '?';
- $delim = ($htmlentities) ? '&' : '&';
+ if(is_array($params)) {
+ $delim = ($htmlentities) ? '&' : '&';
- foreach($params as $k => $v) {
- if($urlencode) {
- $v = urlencode($v);
+ foreach($params as $k => $v) {
+ if($urlencode) {
+ $v = urlencode($v);
+ }
+ $url .= $delim . $k . '=' . $v;
}
- $url .= $delim . $k . '=' . $v;
+ } else {
+ $url .= $params;
}
}
@@ -470,12 +541,11 @@ function psm_POST($key, $alt = null) {
/**
* Check if we are in CLI mode
*
- * Note, php_sapi cannot be used because cgi-fcgi returns both for web and cli
- * source: https://api.drupal.org/api/drupal/includes!bootstrap.inc/function/drupal_is_cli/7
+ * Note, php_sapi cannot be used because cgi-fcgi returns both for web and cli.
* @return boolean
*/
function psm_is_cli() {
- return (!isset($_SERVER['SERVER_SOFTWARE']) && (php_sapi_name() == 'cli' || (is_numeric($_SERVER['argc']) && $_SERVER['argc'] > 0)));
+ return (!isset($_SERVER['SERVER_SOFTWARE']) || php_sapi_name() == 'cli');
}
###############################################
@@ -491,7 +561,9 @@ function psm_is_cli() {
*/
function pre($arr = null) {
echo "
";
- if ($arr === null) debug_print_backtrace();
+ if ($arr === null) {
+ debug_print_backtrace();
+ }
print_r($arr);
echo "
";
}
diff --git a/src/includes/psmconfig.inc.php b/src/includes/psmconfig.inc.php
index 58ab54ce..9876bc88 100644
--- a/src/includes/psmconfig.inc.php
+++ b/src/includes/psmconfig.inc.php
@@ -29,7 +29,7 @@
/**
* Current PSM version
*/
-define('PSM_VERSION', '3.0.1');
+define('PSM_VERSION', '3.1.0');
/**
* URL to check for updates. Will not be checked if turned off on config page.
@@ -96,3 +96,19 @@ define('PSM_LOGIN_RESET_RUNTIME', 3600);
* Number of seconds the cron is supposedly dead and we will run another cron anyway.
*/
define('PSM_CRON_TIMEOUT', 600);
+
+/**
+ * Default timeout in seconds for curl requests (can be overwritten per-server).
+ */
+define('PSM_CURL_TIMEOUT', 10);
+
+
+/**
+ * Name of the default theme.
+ */
+define('PSM_THEME', 'default');
+
+/**
+ * Clone URL for the Pushover.net service.
+ */
+define('PSM_PUSHOVER_CLONE_URL', 'https://pushover.net/apps/clone/php_server_monitor');
\ No newline at end of file
diff --git a/src/lang/bg_BG.lang.php b/src/lang/bg_BG.lang.php
index 1d852f24..679fc405 100644
--- a/src/lang/bg_BG.lang.php
+++ b/src/lang/bg_BG.lang.php
@@ -18,7 +18,7 @@
* along with PHP Server Monitor. If not, see .
*
* @package phpservermon
- * @author Plamen Vasilev
+ * @author Plamen Vasilev a.k.a Paco
* @copyright Copyright (c) 2008-2014 Pepijn Over
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
* @version Release: @package_version@
@@ -29,35 +29,35 @@ $sm_lang = array(
'name' => 'Български - Bulgarian',
'locale' => array('bg_BG.UTF-8', 'bg_BG', 'bulgarian'),
'system' => array(
- 'title' => 'Server Monitor',
+ 'title' => 'Мониторинг',
'install' => 'Инсталация',
'action' => 'Действие',
'save' => 'Запиши',
'edit' => 'Редактирай',
- 'delete' => 'Изтрии',
- 'deleted' => 'Записът е изтрит',
+ 'delete' => 'Изтрий',
'date' => 'Дата',
- 'message' => 'Съобщебие',
+ 'message' => 'Съобщение',
'yes' => 'Да',
'no' => 'Не',
- 'edit' => 'Редактиране на',
'insert' => 'Добавяне',
'add_new' => 'Добави нов',
- 'update_available' => 'Налична е нова версия ({version}). Може да я свалите от тук.',
+ 'update_available' => 'Налична е нова версия: ({version}). Може да я свалите от тук.',
'back_to_top' => 'Нагоре',
- 'go_back' => 'Go back',
- // date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
+ 'go_back' => 'Назад',
+ 'ok' => 'Ок',
+ 'cancel' => 'Отказ',
+ // date/time са във формат според параметъра strftime PHP функцията http://php.net/manual/function.strftime.php
'short_day_format' => '%B %e',
'long_day_format' => '%B %e, %Y',
- 'yesterday_format' => 'Yesterday at %k:%M',
- 'other_day_format' => '%A at %k:%M',
- 'never' => 'Never',
- 'hours_ago' => '%d hours ago',
- 'an_hour_ago' => 'about an hour ago',
- 'minutes_ago' => '%d minutes ago',
- 'a_minute_ago' => 'about a minute ago',
- 'seconds_ago' => '%d seconds ago',
- 'a_second_ago' => 'a second ago',
+ 'yesterday_format' => 'Вчера в %k:%M',
+ 'other_day_format' => '%A в %k:%M',
+ 'never' => 'Никога',
+ 'hours_ago' => 'преди %d часа',
+ 'an_hour_ago' => 'преди час',
+ 'minutes_ago' => 'преди %d минути',
+ 'a_minute_ago' => 'преди минута',
+ 'seconds_ago' => 'преди %d секунди',
+ 'a_second_ago' => 'преди секунда',
),
'menu' => array(
'config' => 'Настройки',
@@ -71,29 +71,37 @@ $sm_lang = array(
'users' => array(
'user' => 'Потребител',
'name' => 'Име',
- 'user_name' => 'Username',
- 'password' => 'Password',
- 'password_repeat' => 'Password repeat',
- 'password_leave_blank' => 'Leave blank to keep unchanged',
- 'level' => 'Level',
- 'level_10' => 'Administrator',
- 'level_20' => 'User',
- 'level_description' => 'Administrators have full access: they can manage servers, users and edit the global configuration. Users can only view and run the updater for the servers that have been assigned to them.',
+ 'user_name' => 'Потребител',
+ 'password' => 'Парола',
+ 'password_repeat' => 'Повторете паролата',
+ 'password_leave_blank' => 'Оставете празно, за да не бъде променена паролата',
+ 'level' => 'Ниво на достъп',
+ 'level_10' => 'Администратор',
+ 'level_20' => 'Потребител',
+ 'level_description' => 'Администраторите имат пълен достъп: могат да управляват сървърите, потребителите и да редактират глобалните настройки. Потребителите могат само да виждат статуса на сървърите и да обнояват информацията за даден сървър, за който им е разрешен достъп.',
'mobile' => 'Мобилен телефон',
'email' => 'Имейл',
+ 'pushover' => 'Pushover',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_key' => 'Pushover Key',
+ 'pushover_device' => 'Pushover Device',
+ 'pushover_device_description' => 'Device name to send the message to. Leave empty to send it to all devices.',
+ 'delete_title' => 'Изтриване на потребител',
+ 'delete_message' => 'Сигурни ли сте, че искате да изтриете потребител \'%1\'?',
+ 'deleted' => 'Потребителят е изтрит успешно.',
'updated' => 'Информацията за потребителя е обновена.',
'inserted' => 'Потребителят е добавен.',
- 'profile' => 'Profile',
- 'profile_updated' => 'Your profile has been updated.',
- 'error_user_name_bad_length' => 'Usernames must be between 2 and 64 characters.',
- 'error_user_name_invalid' => 'It may only contain alphabetic characters (a-z, A-Z), digits (0-9) and underscores (_).',
- 'error_user_name_exists' => 'The given username already exists in the database.',
- 'error_user_email_bad_length' => 'Email addresses must be between 5 and 255 characters.',
- 'error_user_email_invalid' => 'The email address is invalid.',
- 'error_user_level_invalid' => 'The given user level is invalid.',
- 'error_user_no_match' => 'The user could not be found in the database.',
- 'error_user_password_invalid' => 'The entered password is invalid.',
- 'error_user_password_no_match' => 'The entered passwords do not match.',
+ 'profile' => 'Профил',
+ 'profile_updated' => 'Профилът е обновен успешно',
+ 'error_user_name_bad_length' => 'Потребителското име трябва да съдържа между 2 и 64 символа',
+ 'error_user_name_invalid' => 'Може да съдържа само латински букви (a-z, A-Z), цифри (0-9) и долна черта (_).',
+ 'error_user_name_exists' => 'Вече съществува акаунт с това потребителско име.',
+ 'error_user_email_bad_length' => 'Имейл адреса трябва да съдържа между 5 и 255 символа.',
+ 'error_user_email_invalid' => 'Въведения имейл адрес е грешен.',
+ 'error_user_level_invalid' => 'Избраното ниво на достъп е грешно.',
+ 'error_user_no_match' => 'Потребителят не може да бъде намерен.',
+ 'error_user_password_invalid' => 'Въведената парола е грешка.',
+ 'error_user_password_no_match' => 'Въведените пароли не съвпадат.',
),
'log' => array(
'title' => 'Записи в лога',
@@ -101,42 +109,66 @@ $sm_lang = array(
'status' => 'Статус',
'email' => 'Имейл',
'sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'no_logs' => 'Няма налични логове',
),
'servers' => array(
'server' => 'Сървър',
+ 'status' => 'Статус',
'label' => 'Име',
'domain' => 'Хост',
+ 'timeout' => 'Timeout',
+ 'timeout_description' => 'Number of seconds to wait for the server to respond.',
'port' => 'Порт',
'type' => 'Тип',
- 'type_website' => 'Website',
- 'type_service' => 'Service',
- 'pattern' => 'Търсене на образец/схема',
- 'pattern_description' => 'If this pattern is not found on the website, the server will be marked offline. Regular expressions are allowed.',
+ 'type_website' => 'Сайт',
+ 'type_service' => 'Услуга',
+ 'pattern' => 'Търсене на стринг/образец',
+ 'pattern_description' => 'Ако този текст не е намерен в интернет страницата (когато имате добавен сайт), той ще бъде маркиран като Офлайн. Регулярните изрази са разрешени.',
'last_check' => 'Последна проверка',
'last_online' => 'Последно на линия',
'monitoring' => 'Мониторинг',
+ 'no_monitoring' => 'Не се наблюдава',
+ 'email' => 'Имейл',
'send_email' => 'Имейл',
+ 'sms' => 'SMS',
'send_sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'users' => 'Users',
+ 'delete_title' => 'Изтриване на сървър',
+ 'delete_message' => 'Сигурни ли сте, че искате да изтриете сървър \'%1\'?',
+ 'deleted' => 'Сървъра е изтрит успешно.',
'updated' => 'Информацията за сървъра е обновена.',
- 'inserted' => 'Сървърът е добвен успешно.',
- 'latency' => 'Пинг',
- 'latency_max' => 'Latency (maximum)',
- 'latency_min' => 'Latency (minimum)',
- 'latency_avg' => 'Latency (average)',
- 'year' => 'Year',
- 'month' => 'Month',
- 'week' => 'Week',
- 'day' => 'Day',
- 'hour' => 'Hour',
- 'warning_threshold' => 'Warning threshold',
- 'warning_threshold_description' => 'Number of failed checks required before it is marked offline.',
- 'chart_last_week' => 'Last week',
- 'chart_history' => 'History',
- // Charts date format according jqPlot date format http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html
+ 'inserted' => 'Сървърът е добавен успешно.',
+ 'latency' => 'Латенция',
+ 'latency_max' => 'Латенция (максимална)',
+ 'latency_min' => 'Латенция (минимална)',
+ 'latency_avg' => 'Латенция (средна)',
+ 'uptime' => 'Ъптайм',
+ 'year' => 'Година',
+ 'month' => 'Месец',
+ 'week' => 'Седмица',
+ 'day' => 'Ден',
+ 'hour' => 'Час',
+ 'warning_threshold' => 'Предупредителен праг',
+ 'warning_threshold_description' => 'Брой неуспешни проверки, преди сървъра или сайта да бъдат маркирани като Офлайн.',
+ 'chart_last_week' => 'Последната седмица',
+ 'chart_history' => 'История',
+ // Charts формат на датата според jqPlot http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html
'chart_day_format' => '%d.%m.%Y',
'chart_long_date_format' => '%d.%m.%Y %H:%M:%S',
'chart_short_date_format' => '%d.%m %H:%M',
'chart_short_time_format' => '%H:%M',
+ 'warning_notifications_disabled_sms' => 'SMS notifications are disabled.',
+ 'warning_notifications_disabled_email' => 'Email notifications are disabled.',
+ 'warning_notifications_disabled_pushover' => 'Pushover notifications are disabled.',
+ 'error_server_no_match' => 'Server not found.',
+ 'error_server_label_bad_length' => 'The label must be between 1 and 255 characters.',
+ 'error_server_ip_bad_length' => 'The domain / IP must be between 1 and 255 characters.',
+ 'error_server_ip_bad_service' => 'The IP address is not valid.',
+ 'error_server_ip_bad_website' => 'The website URL is not valid.',
+ 'error_server_type_invalid' => 'The selected server type is invalid.',
+ 'error_server_warning_threshold_invalid' => 'The warning threshold must be a valid integer greater than 0.',
),
'config' => array(
'general' => 'Основни настройки',
@@ -154,24 +186,30 @@ $sm_lang = array(
'sms_status' => 'Да се изпращат ли SMS-и',
'sms_gateway' => 'Портал за изпращане на SMS-и',
'sms_gateway_mosms' => 'Mosms',
+ 'sms_gateway_smsit' => 'Smsit',
'sms_gateway_mollie' => 'Mollie',
'sms_gateway_spryng' => 'Spryng',
'sms_gateway_inetworx' => 'Inetworx',
'sms_gateway_clickatell' => 'Clickatell',
'sms_gateway_textmarketer' => 'Textmarketer',
+ 'sms_gateway_smsglobal' => 'SMSGlobal',
'sms_gateway_username' => 'Потребител',
'sms_gateway_password' => 'Парола',
'sms_from' => 'Номер на изпращача',
- 'alert_type' => 'Изберете кога желаете да получавате известия ',
+ 'pushover_status' => 'Allow sending Pushover messages',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_clone_app' => 'Click here to create your Pushover app',
+ 'pushover_api_token' => 'Pushover App API Token',
+ 'pushover_api_token_description' => 'Before you can use Pushover, you need to register an App at their website and enter the App API Token here.',
+ 'alert_type' => 'Изберете кога желаете да получавате известия',
'alert_type_description' => 'Промяна на сатуса: '.
'Ще получавате известие когато има промяна със връзката на даден някой от описаните сървър или сайт. От Онлайн -> Офлайн и от Офлайн -> Онлайн. '.
' Офлайн '.
'Ще получите известие когато връзката до сървъра е изгубена за *ПЪРВИ ПЪТ*. Например, '.
- 'вашия cron скрипт проверява всеки 15 минути и връзката до сървъра е изгубена в 1 часа през ноща и не работи до 6 часа сутринта '.
+ 'вашия cron скрипт проверява всеки 15 минути и връзката до сървъра е изгубена в 1 часа през нощта и не работи до 6 часа сутринта '.
'Вие ще получите едно известие в 1 часа за това '.
' Винаги: '.
- 'Ще получавате известие при всяка проверка на Вашия cron скрипт дори когато връзката до даден сървър или сайт е била'.
- 'прекъсната в продължение на часове.',
+ 'Ще получавате известие при всяка проверка на Вашия крон скрипт дори когато връзката до даден сървър или сайт е била прекъсната в продължение на часове.',
'alert_type_status' => 'Промяна на статуса',
'alert_type_offline' => 'Офлайн',
'alert_type_always' => 'Винаги',
@@ -179,52 +217,81 @@ $sm_lang = array(
'log_status_description' => 'Ако е отметнато, системата ще записва всяка промяна.',
'log_email' => 'Да се пази ли лог на изпратените имейли от системата',
'log_sms' => 'Да се пази ли лог на изпратените SMS съобщения от системата',
+ 'log_pushover' => 'Log pushover messages sent by the script',
'updated' => 'Настройките са обновени успешно.',
'tab_email' => 'Имейл',
'tab_sms' => 'SMS',
- 'tab_log' => 'логовете',
+ 'tab_pushover' => 'Pushover',
'settings_email' => 'Имейл настройки',
'settings_sms' => 'SMS настройки',
+ 'settings_pushover' => 'Pushover settings',
'settings_notification' => 'Настройки на известията',
'settings_log' => 'Настройки на логовете',
'auto_refresh' => 'Автоматично опресняване',
'auto_refresh_servers' =>
'Автоматично опресняване на страницата. '.
''.
- 'Времето е в секунди, ако е 0 страницата няма да се обноява.'.
+ 'Времето е в секунди, ако е 0 страницата няма да се обновява.'.
'',
- 'seconds' => 'seconds',
+ 'seconds' => 'секунди',
+ 'test' => 'Тест',
+ 'test_email' => 'Ще бъде изпратенo тестово съобщение до имейл адреса, който сте задали в профила си.',
+ 'test_sms' => 'Ще бъде изпратен тестово SMS съобщение до телефонния номер, който сте задали в профила си.',
+ 'test_pushover' => 'A Pushover notification will be sent to the user key/device specified in your user profile.',
+ 'send' => 'Изпрати',
+ 'test_subject' => 'Test',
+ 'test_message' => 'Тестово съобщение',
+ 'email_sent' => 'Тестовия имейл е изпратен успешно.',
+ 'email_error' => 'Възникна грешка при изпращането на тесовия имейл',
+ 'sms_sent' => 'Тестовото SMS съобщение е изпратеното успешно.',
+ 'sms_error' => 'Възникна грешка при изпращането на тестовия SMS',
+ 'sms_error_nomobile' => 'Unable to send test SMS: no valid phone number found in your profile.',
+ 'pushover_sent' => 'Pushover notification sent',
+ 'pushover_error' => 'An error has occurred while sending the Pushover notification: %s',
+ 'pushover_error_noapp' => 'Unable to send test notification: no Pushover App API token found in the global configuration.',
+ 'pushover_error_nokey' => 'Unable to send test notification: no Pushover key found in your profile.',
+ 'log_retention_period' => 'Log retention period',
+ 'log_retention_period_description' => 'Number of days to keep logs of notifications and archives of server uptime. Enter 0 to disable log cleanup.',
+ 'log_retention_days' => 'days',
),
// За нов ред в имейл съобщението, моля използвайте тага
'notifications' => array(
- 'off_sms' => 'Syrvyryt \'%LABEL%\' e OFFLINE: ip=%IP%, port=%PORT%. Greshka=%ERROR%',
+ 'off_sms' => 'Сървър \'%LABEL%\' е Офлайн: ip=%IP%, port=%PORT%. Greshka=%ERROR%',
'off_email_subject' => 'Връзката до \'%LABEL%\' е ИЗГУБЕНА',
'off_email_body' => "Неуспешно свързване:
Сървър: %LABEL% IP адрес: %IP% Порт: %PORT% Грешка: %ERROR% Днес: %DATE%",
- 'on_sms' => 'Syrvyryt \'%LABEL%\' e ONLINE: ip=%IP%, port=%PORT%',
+ 'off_pushover_title' => 'Връзката до \'%LABEL%\' е ИЗГУБЕНА',
+ 'off_pushover_message' => "Неуспешно свързване:
Сървър: %LABEL% IP адрес: %IP% Порт: %PORT% Грешка: %ERROR% Днес: %DATE%",
+ 'on_sms' => 'Сървър \'%LABEL%\' е Онлайн: ip=%IP%, port=%PORT%',
'on_email_subject' => 'Връзката до \'%LABEL%\' е ВЪЗСТАНОВЕНА',
'on_email_body' => "Връзката до '%LABEL%' беше ВЪЗСТАНОВЕНА:
Сървър: %LABEL% IP адрес: %IP% Порт: %PORT% Днес: %DATE%",
+ 'on_pushover_title' => 'Връзката до \'%LABEL%\' е ВЪЗСТАНОВЕНА',
+ 'on_pushover_message' => "Връзката до '%LABEL%' беше ВЪЗСТАНОВЕНА:
Сървър: %LABEL% IP адрес: %IP% Порт: %PORT% Днес: %DATE%",
),
'login' => array(
- 'welcome_usermenu' => 'Welcome, %user_name%',
- 'title_sign_in' => 'Please sign in',
- 'title_forgot' => 'Forgot your password?',
- 'title_reset' => 'Reset your password',
- 'submit' => 'Submit',
- 'remember_me' => 'Remember me',
- 'login' => 'Login',
- 'logout' => 'Logout',
- 'username' => 'Username',
- 'password' => 'Password',
- 'password_repeat' => 'Repeat password',
- 'password_forgot' => 'Forgot password?',
- 'password_reset' => 'Reset password',
- 'password_reset_email_subject' => 'Reset your password for PHP Server Monitor',
- 'password_reset_email_body' => 'Please use the following link to reset your password. Please note it expires in 1 hour.
%link%',
- 'error_user_incorrect' => 'The provided username could not be found.',
- 'error_login_incorrect' => 'The information is incorrect.',
- 'error_login_passwords_nomatch' => 'The provided passwords do not match.',
- 'error_reset_invalid_link' => 'The reset link you provided is invalid.',
- 'success_password_forgot' => 'An email has been sent to you with information how to reset your password.',
- 'success_password_reset' => 'Your password has been reset successfully. Please login.',
+ 'welcome_usermenu' => 'Добре дошъл, %user_name%',
+ 'title_sign_in' => 'Моля, влезте с профила си',
+ 'title_forgot' => 'Забравили сте паролата си?',
+ 'title_reset' => 'Възстановяване на паролата',
+ 'submit' => 'Вход',
+ 'remember_me' => 'Искам да остана логнат',
+ 'login' => 'Вход',
+ 'logout' => 'Изход',
+ 'username' => 'Потребител',
+ 'password' => 'Парола',
+ 'password_repeat' => 'Повторете паролата',
+ 'password_forgot' => 'Забравили сте паролата си?',
+ 'password_reset' => 'Възстановяване на паролата',
+ 'password_reset_email_subject' => 'Възстановяване на парола за PHP Сървър Мониторинг',
+ 'password_reset_email_body' => 'За да възстановите паролата си е нужно да кликнете на линка по-долу. Валидността на линка е един час.
%link%',
+ 'error_user_incorrect' => 'Потребителят не може да бъде намерен.',
+ 'error_login_incorrect' => 'Информацията е грешна.',
+ 'error_login_passwords_nomatch' => 'Паролите не съвпадат.',
+ 'error_reset_invalid_link' => 'Линкът за възстановяване на паролата не е валиден.',
+ 'success_password_forgot' => 'Изпратен е имейл с информация за възстановяване на паролата.',
+ 'success_password_reset' => 'Вашата парола е променена успешно. Моля, влезте в системата.',
+ ),
+ 'error' => array(
+ '401_unauthorized' => 'Unauthorized',
+ '401_unauthorized_description' => 'You do not have the privileges to view this page.',
),
);
diff --git a/src/lang/da_DK.lang.php b/src/lang/da_DK.lang.php
new file mode 100644
index 00000000..5dd633b7
--- /dev/null
+++ b/src/lang/da_DK.lang.php
@@ -0,0 +1,297 @@
+.
+ *
+ * @package phpservermon
+ * @author nerdalertdk
+ * @copyright Copyright (c) 2008-2014 Pepijn Over
+ * @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
+ * @version Release: @package_version@
+ * @link http://www.phpservermonitor.org/
+ **/
+
+$sm_lang = array(
+ 'name' => 'Dansk - Danish',
+ 'locale' => array('da_DK.UTF-8', 'da_DK', 'danish', 'danish-dk'),
+ 'system' => array(
+ 'title' => 'Server Monitor',
+ 'install' => 'Installere',
+ 'action' => 'Action',
+ 'save' => 'Gem',
+ 'edit' => 'Redigere',
+ 'delete' => 'Slet',
+ 'date' => 'Dato',
+ 'message' => 'Besked',
+ 'yes' => 'Ja',
+ 'no' => 'Nej',
+ 'insert' => 'Indsæt',
+ 'add_new' => 'Tilføj ny',
+ 'update_available' => 'En ny version ({version}) er tilgængelig på http://www.phpservermonitor.org.',
+ 'back_to_top' => 'Til toppen',
+ 'go_back' => 'Tilbage',
+ 'ok' => 'OK',
+ 'cancel' => 'Annuller',
+ // date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
+ 'short_day_format' => '%B %e',
+ 'long_day_format' => '%B %e, %Y',
+ 'yesterday_format' => 'Igår %k:%M',
+ 'other_day_format' => '%A %k:%M',
+ 'never' => 'Aldrig',
+ 'hours_ago' => '%d timer siden',
+ 'an_hour_ago' => 'omkring en time siden',
+ 'minutes_ago' => '%d minutter siden',
+ 'a_minute_ago' => 'omkring et minut siden',
+ 'seconds_ago' => '%d sekunder siden',
+ 'a_second_ago' => 'et sekund siden',
+ ),
+ 'menu' => array(
+ 'config' => 'Indstillinger',
+ 'server' => 'Servere',
+ 'server_log' => 'Log',
+ 'server_status' => 'Status',
+ 'server_update' => 'Opdatere',
+ 'user' => 'Brugere',
+ 'help' => 'Hjælp',
+ ),
+ 'users' => array(
+ 'user' => 'Bruger',
+ 'name' => 'Navn',
+ 'user_name' => 'Brugernavn',
+ 'password' => 'Adgangskode',
+ 'password_repeat' => 'Adgangskode igen',
+ 'password_leave_blank' => 'Udfyldes hvis du vil skifte kode',
+ 'level' => 'Level',
+ 'level_10' => 'Administrator',
+ 'level_20' => 'Bruger',
+ 'level_description' => 'Administratore har fuld adgang: De kan styre servere, brugere og indstillingere. Brugere kan kun se og køre opdatere for servere som er tildelt til dem.',
+ 'mobile' => 'Mobil',
+ 'email' => 'Email',
+ 'pushover' => 'Pushover',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_key' => 'Pushover Key',
+ 'pushover_device' => 'Pushover Device',
+ 'pushover_device_description' => 'Device name to send the message to. Leave empty to send it to all devices.',
+ 'delete_title' => 'Slet bruger',
+ 'delete_message' => 'Er du sikker på du vil slette bruger \'%1\'?',
+ 'deleted' => 'Bruger slettet.',
+ 'updated' => 'Bruger opdateret.',
+ 'inserted' => 'Bruger tilføjet.',
+ 'profile' => 'Profil',
+ 'profile_updated' => 'Din profil er opdateret.',
+ 'error_user_name_bad_length' => 'Brugernavn skal være mellem 2 til 64 tegn.',
+ 'error_user_name_invalid' => 'Brugernavn må kun indholde alfabetiske tegn (a-z, A-Z), tal (0-9) og (_).',
+ 'error_user_name_exists' => 'Det valgte brugernavn findes allerede.',
+ 'error_user_email_bad_length' => 'Email addresser skal være mellem 5 til 255 tegn.',
+ 'error_user_email_invalid' => 'Den valgte email er ugyldig.',
+ 'error_user_level_invalid' => 'Det angivet bruger niveau er ugyldig.',
+ 'error_user_no_match' => 'Brugeren findes ikke.',
+ 'error_user_password_invalid' => 'Den indtastede adgangskode er ugyldig.',
+ 'error_user_password_no_match' => 'De to adgangskode er ikke ens.',
+ ),
+ 'log' => array(
+ 'title' => 'Logposter',
+ 'type' => 'Type',
+ 'status' => 'Status',
+ 'email' => 'Email',
+ 'sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'no_logs' => 'Intet i loggen',
+ ),
+ 'servers' => array(
+ 'server' => 'Server',
+ 'status' => 'Status',
+ 'label' => 'Label',
+ 'domain' => 'Domæne/IP',
+ 'timeout' => 'Timeout',
+ 'timeout_description' => 'Number of seconds to wait for the server to respond.',
+ 'port' => 'Port',
+ 'type' => 'Type',
+ 'type_website' => 'Hjemmeside',
+ 'type_service' => 'Tjeneste',
+ 'pattern' => 'Søge streng/mønster',
+ 'pattern_description' => 'Hvis dette mønster ikke findes på hjemmesiden, vil serveren blive markeret offline. Regulære udtryk er tilladt.',
+ 'last_check' => 'Sidst kontrolleret',
+ 'last_online' => 'Sidst online',
+ 'monitoring' => 'Overvågning',
+ 'no_monitoring' => 'Ingen overvågning',
+ 'email' => 'Email',
+ 'send_email' => 'Send Email',
+ 'sms' => 'SMS',
+ 'send_sms' => 'Send SMS',
+ 'pushover' => 'Pushover',
+ 'users' => 'Users',
+ 'delete_title' => 'Slet server',
+ 'delete_message' => 'Er du sikker på du vil slette server \'%1\'?',
+ 'deleted' => 'Server slettet.',
+ 'updated' => 'Server opdateret.',
+ 'inserted' => 'Server tilføjet.',
+ 'latency' => 'Latency',
+ 'latency_max' => 'Latency (maksimum)',
+ 'latency_min' => 'Latency (minimum)',
+ 'latency_avg' => 'Latency (gennemsnitlig)',
+ 'uptime' => 'Oppetid',
+ 'year' => 'År',
+ 'month' => 'Måned',
+ 'week' => 'Uge',
+ 'day' => 'Dag',
+ 'hour' => 'Time',
+ 'warning_threshold' => 'Advarsel grænse',
+ 'warning_threshold_description' => 'Antal af fejl før status skifter til offline.',
+ 'chart_last_week' => 'Sidste uge',
+ 'chart_history' => 'Historie',
+ // Charts date format according jqPlot date format http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html
+ 'chart_day_format' => '%d-%m-%Y',
+ 'chart_long_date_format' => '%d-%m-%Y %H:%M:%S',
+ 'chart_short_date_format' => '%d/%m %H:%M',
+ 'chart_short_time_format' => '%H:%M',
+ 'warning_notifications_disabled_sms' => 'SMS notifications are disabled.',
+ 'warning_notifications_disabled_email' => 'Email notifications are disabled.',
+ 'warning_notifications_disabled_pushover' => 'Pushover notifications are disabled.',
+ 'error_server_no_match' => 'Server not found.',
+ 'error_server_label_bad_length' => 'The label must be between 1 and 255 characters.',
+ 'error_server_ip_bad_length' => 'The domain / IP must be between 1 and 255 characters.',
+ 'error_server_ip_bad_service' => 'The IP address is not valid.',
+ 'error_server_ip_bad_website' => 'The website URL is not valid.',
+ 'error_server_type_invalid' => 'The selected server type is invalid.',
+ 'error_server_warning_threshold_invalid' => 'The warning threshold must be a valid integer greater than 0.',
+ ),
+ 'config' => array(
+ 'general' => 'Generelt',
+ 'language' => 'Sprog',
+ 'show_update' => 'Opdateringer',
+ 'email_status' => 'Tillad at sende mail',
+ 'email_from_email' => 'Email fra adresse',
+ 'email_from_name' => 'Email fra navn',
+ 'email_smtp' => 'Aktiver SMTP',
+ 'email_smtp_host' => 'SMTP vært',
+ 'email_smtp_port' => 'SMTP port',
+ 'email_smtp_username' => 'SMTP brugernavn',
+ 'email_smtp_password' => 'SMTP adgangskode',
+ 'email_smtp_noauth' => 'Efterladt blank hvis det ikke er opkrævet',
+ 'sms_status' => 'Tillad at sende SMS beskeder',
+ 'sms_gateway' => 'SMS Gateway',
+ 'sms_gateway_mosms' => 'Mosms',
+ 'sms_gateway_mollie' => 'Mollie',
+ 'sms_gateway_spryng' => 'Spryng',
+ 'sms_gateway_inetworx' => 'Inetworx',
+ 'sms_gateway_clickatell' => 'Clickatell',
+ 'sms_gateway_textmarketer' => 'Textmarketer',
+ 'sms_gateway_smsglobal' => 'SMSGlobal',
+ 'sms_gateway_smsit' => 'Smsit',
+ 'sms_gateway_username' => 'Gateway brugernavn/apikey',
+ 'sms_gateway_password' => 'Gateway adgangskode',
+ 'sms_from' => 'Afsenders navn.',
+ 'pushover_status' => 'Allow sending Pushover messages',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_clone_app' => 'Click here to create your Pushover app',
+ 'pushover_api_token' => 'Pushover App API Token',
+ 'pushover_api_token_description' => 'Before you can use Pushover, you need to register an App at their website and enter the App API Token here.',
+ 'alert_type' => 'Vælg hvornår du vil modtage besked',
+ 'alert_type_description' => 'Status ændring: '.
+ 'Du vil modtage en notifcation når en server har en ændring i status. Fra online -> offline eller offline -> online. '.
+ ' Offline: '.
+ 'Du vil modtage en meddelelse, når en server går offline for * kun første gang *. for eksempel, '.
+ 'Hvis dit cronjob køre hvert kvatere og din server går ned kl 01 og kommer først op kl 06 '.
+ ' så vil du kun modtage en mail kl 01. '.
+ ' Altid: '.
+ 'Du vil modtage en besked, hver gang scriptet kører og et websted er nede, selvom site har været offline i flere timer.',
+ 'alert_type_status' => 'Status ændret',
+ 'alert_type_offline' => 'Offline',
+ 'alert_type_always' => 'Altid',
+ 'log_status' => 'Log status',
+ 'log_status_description' => 'Hvis log status er sat til TRUE, vil monitoren logge hændelsen hver gang status ændre sig.',
+ 'log_email' => 'Log mails sendt af systemet',
+ 'log_sms' => 'Log SMS sendt af systemet',
+ 'log_pushover' => 'Log pushover messages sent by the script',
+ 'updated' => 'Indstillingerne er blevet opdateret.',
+ 'tab_email' => 'Email',
+ 'tab_sms' => 'SMS',
+ 'tab_pushover' => 'Pushover',
+ 'settings_email' => 'Email indstillinger',
+ 'settings_sms' => 'SMS indstillinger',
+ 'settings_pushover' => 'Pushover settings',
+ 'settings_notification' => 'Meddelelse indstillinger',
+ 'settings_log' => 'Log indstillinger',
+ 'auto_refresh' => 'Genopfriske automatisk',
+ 'auto_refresh_servers' =>
+ 'Genopfriske automatisk server sider. '.
+ ''.
+ 'Tid i sekunder, Hvis 0 vil siden ikke genopfriske automatisk'.
+ '',
+ 'seconds' => 'sekunder',
+ 'test' => 'Test',
+ 'test_email' => 'En email vil blive sendt til den adresse, der er angivet i din brugerprofil.',
+ 'test_sms' => 'En SMS vil blive sendt til det nummer, der er angivet i din brugerprofil.',
+ 'test_pushover' => 'A Pushover notification will be sent to the user key/device specified in your user profile.',
+ 'send' => 'Send',
+ 'test_subject' => 'Test',
+ 'test_message' => 'Test besked',
+ 'email_sent' => 'Email sendt',
+ 'email_error' => 'Fejl ved afsendelse af email',
+ 'sms_sent' => 'Sms sendt',
+ 'sms_error' => 'Fejl ved afsendelse af SMS',
+ 'sms_error_nomobile' => 'Unable to send test SMS: no valid phone number found in your profile.',
+ 'pushover_sent' => 'Pushover notification sent',
+ 'pushover_error' => 'An error has occurred while sending the Pushover notification: %s',
+ 'pushover_error_noapp' => 'Unable to send test notification: no Pushover App API token found in the global configuration.',
+ 'pushover_error_nokey' => 'Unable to send test notification: no Pushover key found in your profile.',
+ 'log_retention_period' => 'Log retention period',
+ 'log_retention_period_description' => 'Number of days to keep logs of notifications and archives of server uptime. Enter 0 to disable log cleanup.',
+ 'log_retention_days' => 'days',
+ ),
+ // for newlines in the email messages use
+ 'notifications' => array(
+ 'off_sms' => 'Server \'%LABEL%\' is DOWN: ip=%IP%, port=%PORT%. Fejl=%ERROR%',
+ 'off_email_subject' => 'VIGTIG: Server \'%LABEL%\' is DOWN',
+ 'off_email_body' => "Det lykkedes ikke at oprette forbindelse til følgende server:
Server: %LABEL% IP: %IP% Port: %PORT% Fejl: %ERROR% Date: %DATE%",
+ 'off_pushover_title' => 'Server \'%LABEL%\' is DOWN',
+ 'off_pushover_message' => "Det lykkedes ikke at oprette forbindelse til følgende server:
Server: %LABEL% IP: %IP% Port: %PORT% Dato: %DATE%",
+ ),
+ 'login' => array(
+ 'welcome_usermenu' => 'Velkommen, %user_name%',
+ 'title_sign_in' => 'Log ind',
+ 'title_forgot' => 'Glemt adgangskode?',
+ 'title_reset' => 'Nulstil din adgangskode',
+ 'submit' => 'Indsend',
+ 'remember_me' => 'Husk kode',
+ 'login' => 'Log ind',
+ 'logout' => 'Log ud',
+ 'username' => 'Brugernavn',
+ 'password' => 'Adgangskode',
+ 'password_repeat' => 'Skriv adgangskode igen',
+ 'password_forgot' => 'Glemt adgangskode?',
+ 'password_reset' => 'Nulstil adgangskode',
+ 'password_reset_email_subject' => 'Nulstil din adgangskode for PHP Server Monitor',
+ 'password_reset_email_body' => 'Brug venligst følgende link for at nulstille din adgangskode. Bemærk det udløber på 1 time.
%link%',
+ 'error_user_incorrect' => 'Det angivet brugernavn kunne ikke findes.',
+ 'error_login_incorrect' => 'Oplysningerne stemmer ikke overens.',
+ 'error_login_passwords_nomatch' => 'De angivet adgangskoder matcher ikke.',
+ 'error_reset_invalid_link' => 'Følgende link er ugyldigt.',
+ 'success_password_forgot' => 'En e-mail er blevet sendt til dig med oplysninger om, hvordan du nulstiller din adgangskode.',
+ 'success_password_reset' => 'Dit password er blevet nulstillet. venligst log ind.',
+ ),
+ 'error' => array(
+ '401_unauthorized' => 'Unauthorized',
+ '401_unauthorized_description' => 'You do not have the privileges to view this page.',
+ ),
+);
diff --git a/src/lang/de_DE.lang.php b/src/lang/de_DE.lang.php
index eb7e7599..38bc37c9 100644
--- a/src/lang/de_DE.lang.php
+++ b/src/lang/de_DE.lang.php
@@ -35,17 +35,17 @@ $sm_lang = array(
'save' => 'Speichern',
'edit' => 'Bearbeiten',
'delete' => 'Löschen',
- 'deleted' => 'Eintrag wurde gelöscht',
'date' => 'Datum',
'message' => 'Meldung',
'yes' => 'Ja',
'no' => 'Nein',
- 'edit' => 'Bearbeiten',
'insert' => 'Einfügen',
'add_new' => 'Neuen Eintrag erstellen',
'update_available' => 'Ein neues Update ({version}) ist verfügbar auf http://www.phpservermonitor.org.',
'back_to_top' => 'Back to top',
'go_back' => 'Go back',
+ 'ok' => 'OK',
+ 'cancel' => 'Cancel',
// date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
'short_day_format' => '%B %e',
'long_day_format' => '%B %e, %Y',
@@ -81,6 +81,14 @@ $sm_lang = array(
'level_description' => 'Administrators have full access: they can manage servers, users and edit the global configuration. Users can only view and run the updater for the servers that have been assigned to them.',
'mobile' => 'Mobil',
'email' => 'Email',
+ 'pushover' => 'Pushover',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_key' => 'Pushover Key',
+ 'pushover_device' => 'Pushover Device',
+ 'pushover_device_description' => 'Device name to send the message to. Leave empty to send it to all devices.',
+ 'delete_title' => 'Delete User',
+ 'delete_message' => 'Are you sure you want to delete user \'%1\'?',
+ 'deleted' => 'User deleted.',
'updated' => 'Benutzer bearbeitet.',
'inserted' => 'Benutzer eingetragen.',
'profile' => 'Profile',
@@ -101,11 +109,16 @@ $sm_lang = array(
'status' => 'Status',
'email' => 'Email',
'sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'no_logs' => 'No logs',
),
'servers' => array(
'server' => 'Server',
+ 'status' => 'Status',
'label' => 'Beschriftung',
'domain' => 'Domain/IP',
+ 'timeout' => 'Timeout',
+ 'timeout_description' => 'Number of seconds to wait for the server to respond.',
'port' => 'Port',
'type' => 'Type',
'type_website' => 'Website',
@@ -115,14 +128,23 @@ $sm_lang = array(
'last_check' => 'Letzter Check',
'last_online' => 'Letztes mal Online',
'monitoring' => 'Monitoring',
+ 'no_monitoring' => 'No monitoring',
+ 'email' => 'Email',
'send_email' => 'Email',
+ 'sms' => 'SMS',
'send_sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'users' => 'Users',
+ 'delete_title' => 'Delete Server',
+ 'delete_message' => 'Are you sure you want to delete server \'%1\'?',
+ 'deleted' => 'Server deleted.',
'updated' => 'Server aktualisiert.',
'inserted' => 'Server eingetragen.',
'latency' => 'Antwortzeit',
'latency_max' => 'Latency (maximum)',
'latency_min' => 'Latency (minimum)',
'latency_avg' => 'Latency (average)',
+ 'uptime' => 'Uptime',
'year' => 'Year',
'month' => 'Month',
'week' => 'Week',
@@ -137,6 +159,16 @@ $sm_lang = array(
'chart_long_date_format' => '%d.%m.%Y %H:%M:%S',
'chart_short_date_format' => '%d.%m %H:%M',
'chart_short_time_format' => '%H:%M',
+ 'warning_notifications_disabled_sms' => 'SMS notifications are disabled.',
+ 'warning_notifications_disabled_email' => 'Email notifications are disabled.',
+ 'warning_notifications_disabled_pushover' => 'Pushover notifications are disabled.',
+ 'error_server_no_match' => 'Server not found.',
+ 'error_server_label_bad_length' => 'The label must be between 1 and 255 characters.',
+ 'error_server_ip_bad_length' => 'The domain / IP must be between 1 and 255 characters.',
+ 'error_server_ip_bad_service' => 'The IP address is not valid.',
+ 'error_server_ip_bad_website' => 'The website URL is not valid.',
+ 'error_server_type_invalid' => 'The selected server type is invalid.',
+ 'error_server_warning_threshold_invalid' => 'The warning threshold must be a valid integer greater than 0.',
),
'config' => array(
'general' => 'General',
@@ -159,10 +191,17 @@ $sm_lang = array(
'sms_gateway_inetworx' => 'Inetworx',
'sms_gateway_clickatell' => 'Clickatell',
'sms_gateway_textmarketer' => 'Textmarketer',
+ 'sms_gateway_smsglobal' => 'SMSGlobal',
+ 'sms_gateway_smsit' => 'Smsit',
'sms_gateway_username' => 'Gateway Benutzername',
'sms_gateway_password' => 'Gateway Passwort',
'sms_from' => 'SMS Sendernummer',
- 'alert_type' => 'Wann möchten Sie benachrichtig werden? ',
+ 'pushover_status' => 'Allow sending Pushover messages',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_clone_app' => 'Click here to create your Pushover app',
+ 'pushover_api_token' => 'Pushover App API Token',
+ 'pushover_api_token_description' => 'Before you can use Pushover, you need to register an App at their website and enter the App API Token here.',
+ 'alert_type' => 'Wann möchten Sie benachrichtig werden?',
'alert_type_description' => 'Status geändert: '.
'... wenn sich der Status ändert '.
'z.B. online -> offline oder offline -> online. '.
@@ -170,8 +209,7 @@ $sm_lang = array(
'Sie bekommen eine Benachrichtigung, wenn ein Server Offline ist. '.
'Es wird nur eine Mitteilung versendet. '.
' Immer: '.
- 'Sie werden jedesmal wenn der CronJob oder das Script ausgeführt wird benachrichtigt, '.
- 'auch wenn der Dienst mehreres Stunden offline ist',
+ 'Sie werden jedesmal wenn der CronJob oder das Script ausgeführt wird benachrichtigt auch wenn der Dienst mehreres Stunden offline ist',
'alert_type_status' => 'Status geändert',
'alert_type_offline' => 'Offline',
'alert_type_always' => 'Immer',
@@ -179,12 +217,14 @@ $sm_lang = array(
'log_status_description' => 'Ist der Log Status auf TRUE (ein Hacken) gesetzt, wird jeder Status protokolliert.',
'log_email' => 'Email Log per Script senden?',
'log_sms' => 'SMS Log per Script senden?',
+ 'log_pushover' => 'Pushover Log per Script senden?',
'updated' => 'Die Einstellungen wurden gespeichert.',
'tab_email' => 'Email',
'tab_sms' => 'SMS',
- 'tab_log' => 'Log',
+ 'tab_pushover' => 'Pushover',
'settings_email' => 'Email',
'settings_sms' => 'SMS Nachricht',
+ 'settings_pushover' => 'Pushover settings',
'settings_notification' => 'Benachrichtigung',
'settings_log' => 'Log',
'auto_refresh' => 'Auto-refresh',
@@ -194,15 +234,38 @@ $sm_lang = array(
'Time in seconds, if 0 the page won\'t refresh.'.
'',
'seconds' => 'seconds',
+ 'test' => 'Test',
+ 'test_email' => 'An email will be sent to the address specified in your user profile.',
+ 'test_sms' => 'An SMS will be sent to the phone number specified in your user profile.',
+ 'test_pushover' => 'A Pushover notification will be sent to the user key/device specified in your user profile.',
+ 'send' => 'Send',
+ 'test_subject' => 'Test',
+ 'test_message' => 'Test message',
+ 'email_sent' => 'Email sent',
+ 'email_error' => 'Error in email sending',
+ 'sms_sent' => 'Sms sent',
+ 'sms_error' => 'Error in sms sending',
+ 'sms_error_nomobile' => 'Unable to send test SMS: no valid phone number found in your profile.',
+ 'pushover_sent' => 'Pushover notification sent',
+ 'pushover_error' => 'An error has occurred while sending the Pushover notification: %s',
+ 'pushover_error_noapp' => 'Unable to send test notification: no Pushover App API token found in the global configuration.',
+ 'pushover_error_nokey' => 'Unable to send test notification: no Pushover key found in your profile.',
+ 'log_retention_period' => 'Log retention period',
+ 'log_retention_period_description' => 'Number of days to keep logs of notifications and archives of server uptime. Enter 0 to disable log cleanup.',
+ 'log_retention_days' => 'days',
),
// for newlines in the email messages use
'notifications' => array(
'off_sms' => 'Server \'%LABEL%\' ist Offline: ip=%IP%, port=%PORT%. Fehler=%ERROR%',
'off_email_subject' => 'Wichtig: Server \'%LABEL%\' ist Offline',
'off_email_body' => "Kann keine Verbindung zum Server aufbauen:
Server: %LABEL% IP: %IP% Port: %PORT% Fehler: %ERROR% Datum: %DATE%",
+ 'off_pushover_title' => 'Server \'%LABEL%\' ist Offline',
+ 'off_pushover_message' => "Kann keine Verbindung zum Server aufbauen:
Server: %LABEL% IP: %IP% Port: %PORT% Fehler: %ERROR% Datum: %DATE%",
'on_sms' => 'Server \'%LABEL%\' ist wieder Online: ip=%IP%, port=%PORT%',
'on_email_subject' => 'Wichtig: Server \'%LABEL%\' ist wieder Online',
'on_email_body' => "Server '%LABEL%' läuft wieder:
Server: %LABEL% IP: %IP% Port: %PORT% Datum: %DATE%",
),
'login' => array(
'welcome_usermenu' => 'Welcome, %user_name%',
@@ -227,4 +290,8 @@ $sm_lang = array(
'success_password_forgot' => 'An email has been sent to you with information how to reset your password.',
'success_password_reset' => 'Your password has been reset successfully. Please login.',
),
+ 'error' => array(
+ '401_unauthorized' => 'Unauthorized',
+ '401_unauthorized_description' => 'You do not have the privileges to view this page.',
+ ),
);
diff --git a/src/lang/en_US.lang.php b/src/lang/en_US.lang.php
index 36ae7d25..9c47eca6 100644
--- a/src/lang/en_US.lang.php
+++ b/src/lang/en_US.lang.php
@@ -35,17 +35,17 @@ $sm_lang = array(
'save' => 'Save',
'edit' => 'Edit',
'delete' => 'Delete',
- 'deleted' => 'Record has been deleted',
'date' => 'Date',
'message' => 'Message',
'yes' => 'Yes',
'no' => 'No',
- 'edit' => 'Edit',
'insert' => 'Insert',
'add_new' => 'Add new',
'update_available' => 'A new version ({version}) is available from http://www.phpservermonitor.org.',
'back_to_top' => 'Back to top',
'go_back' => 'Go back',
+ 'ok' => 'OK',
+ 'cancel' => 'Cancel',
// date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
'short_day_format' => '%B %e',
'long_day_format' => '%B %e, %Y',
@@ -69,7 +69,7 @@ $sm_lang = array(
'help' => 'Help',
),
'users' => array(
- 'user' => 'user',
+ 'user' => 'User',
'name' => 'Name',
'user_name' => 'Username',
'password' => 'Password',
@@ -81,6 +81,14 @@ $sm_lang = array(
'level_description' => 'Administrators have full access: they can manage servers, users and edit the global configuration. Users can only view and run the updater for the servers that have been assigned to them.',
'mobile' => 'Mobile',
'email' => 'Email',
+ 'pushover' => 'Pushover',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_key' => 'Pushover Key',
+ 'pushover_device' => 'Pushover Device',
+ 'pushover_device_description' => 'Device name to send the message to. Leave empty to send it to all devices.',
+ 'delete_title' => 'Delete User',
+ 'delete_message' => 'Are you sure you want to delete user \'%1\'?',
+ 'deleted' => 'User deleted.',
'updated' => 'User updated.',
'inserted' => 'User added.',
'profile' => 'Profile',
@@ -101,11 +109,16 @@ $sm_lang = array(
'status' => 'Status',
'email' => 'Email',
'sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'no_logs' => 'No logs',
),
'servers' => array(
'server' => 'Server',
+ 'status' => 'Status',
'label' => 'Label',
'domain' => 'Domain/IP',
+ 'timeout' => 'Timeout',
+ 'timeout_description' => 'Number of seconds to wait for the server to respond.',
'port' => 'Port',
'type' => 'Type',
'type_website' => 'Website',
@@ -115,14 +128,23 @@ $sm_lang = array(
'last_check' => 'Last check',
'last_online' => 'Last online',
'monitoring' => 'Monitoring',
+ 'no_monitoring' => 'No monitoring',
+ 'email' => 'Email',
'send_email' => 'Send Email',
+ 'sms' => 'SMS',
'send_sms' => 'Send SMS',
+ 'pushover' => 'Pushover',
+ 'users' => 'Users',
+ 'delete_title' => 'Delete server',
+ 'delete_message' => 'Are you sure you want to delete server \'%1\'?',
+ 'deleted' => 'Server deleted.',
'updated' => 'Server updated.',
'inserted' => 'Server added.',
'latency' => 'Latency',
'latency_max' => 'Latency (maximum)',
'latency_min' => 'Latency (minimum)',
'latency_avg' => 'Latency (average)',
+ 'uptime' => 'Uptime',
'year' => 'Year',
'month' => 'Month',
'week' => 'Week',
@@ -137,11 +159,21 @@ $sm_lang = array(
'chart_long_date_format' => '%Y-%m-%d %H:%M:%S',
'chart_short_date_format' => '%m/%d %H:%M',
'chart_short_time_format' => '%H:%M',
+ 'warning_notifications_disabled_sms' => 'SMS notifications are disabled.',
+ 'warning_notifications_disabled_email' => 'Email notifications are disabled.',
+ 'warning_notifications_disabled_pushover' => 'Pushover notifications are disabled.',
+ 'error_server_no_match' => 'Server not found.',
+ 'error_server_label_bad_length' => 'The label must be between 1 and 255 characters.',
+ 'error_server_ip_bad_length' => 'The domain / IP must be between 1 and 255 characters.',
+ 'error_server_ip_bad_service' => 'The IP address is not valid.',
+ 'error_server_ip_bad_website' => 'The website URL is not valid.',
+ 'error_server_type_invalid' => 'The selected server type is invalid.',
+ 'error_server_warning_threshold_invalid' => 'The warning threshold must be a valid integer greater than 0.',
),
'config' => array(
'general' => 'General',
'language' => 'Language',
- 'show_update' => 'Updates',
+ 'show_update' => 'Check for updates?',
'email_status' => 'Allow sending email',
'email_from_email' => 'Email from address',
'email_from_name' => 'Email from name',
@@ -159,10 +191,17 @@ $sm_lang = array(
'sms_gateway_inetworx' => 'Inetworx',
'sms_gateway_clickatell' => 'Clickatell',
'sms_gateway_textmarketer' => 'Textmarketer',
+ 'sms_gateway_smsglobal' => 'SMSGlobal',
+ 'sms_gateway_smsit' => 'Smsit',
'sms_gateway_username' => 'Gateway username',
'sms_gateway_password' => 'Gateway password',
'sms_from' => 'Sender\'s phone number',
- 'alert_type' => 'Select when you\'d like to be notified. ',
+ 'pushover_status' => 'Allow sending Pushover messages',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_clone_app' => 'Click here to create your Pushover app',
+ 'pushover_api_token' => 'Pushover App API Token',
+ 'pushover_api_token_description' => 'Before you can use Pushover, you need to register an App at their website and enter the App API Token here.',
+ 'alert_type' => 'Select when you\'d like to be notified.',
'alert_type_description' => 'Status change: '.
'You will receive a notifcation when a server has a change in status. So from online -> offline or offline -> online. '.
' Offline: '.
@@ -170,8 +209,7 @@ $sm_lang = array(
'your cronjob is every 15 mins and your server goes down at 1 am and stays down till 6 am. '.
'You will get 1 notification at 1 am and thats it. '.
' Always: '.
- 'You will receive a notification every time the script runs and a site is down, even if the site has been '.
- 'offline for hours.',
+ 'You will receive a notification every time the script runs and a site is down, even if the site has been offline for hours.',
'alert_type_status' => 'Status change',
'alert_type_offline' => 'Offline',
'alert_type_always' => 'Always',
@@ -179,12 +217,14 @@ $sm_lang = array(
'log_status_description' => 'If log status is set to TRUE, the monitor will log the event whenever the Notification settings are passed.',
'log_email' => 'Log emails sent by the script',
'log_sms' => 'Log text messages sent by the script',
+ 'log_pushover' => 'Log pushover messages sent by the script',
'updated' => 'The configuration has been updated.',
'tab_email' => 'Email',
'tab_sms' => 'SMS',
- 'tab_log' => 'Log',
+ 'tab_pushover' => 'Pushover',
'settings_email' => 'Email settings',
'settings_sms' => 'Text message settings',
+ 'settings_pushover' => 'Pushover settings',
'settings_notification' => 'Notification settings',
'settings_log' => 'Log settings',
'auto_refresh' => 'Auto-refresh',
@@ -194,15 +234,38 @@ $sm_lang = array(
'Time in seconds, if 0 the page won\'t refresh.'.
'',
'seconds' => 'seconds',
+ 'test' => 'Test',
+ 'test_email' => 'An email will be sent to the address specified in your user profile.',
+ 'test_sms' => 'An SMS will be sent to the phone number specified in your user profile.',
+ 'test_pushover' => 'A Pushover notification will be sent to the user key/device specified in your user profile.',
+ 'send' => 'Send',
+ 'test_subject' => 'Test',
+ 'test_message' => 'Test message',
+ 'email_sent' => 'Email sent',
+ 'email_error' => 'Error in email sending',
+ 'sms_sent' => 'Sms sent',
+ 'sms_error' => 'Error in sms sending',
+ 'sms_error_nomobile' => 'Unable to send test SMS: no valid phone number found in your profile.',
+ 'pushover_sent' => 'Pushover notification sent',
+ 'pushover_error' => 'An error has occurred while sending the Pushover notification: %s',
+ 'pushover_error_noapp' => 'Unable to send test notification: no Pushover App API token found in the global configuration.',
+ 'pushover_error_nokey' => 'Unable to send test notification: no Pushover key found in your profile.',
+ 'log_retention_period' => 'Log retention period',
+ 'log_retention_period_description' => 'Number of days to keep logs of notifications and archives of server uptime. Enter 0 to disable log cleanup.',
+ 'log_retention_days' => 'days',
),
// for newlines in the email messages use
'notifications' => array(
'off_sms' => 'Server \'%LABEL%\' is DOWN: ip=%IP%, port=%PORT%. Error=%ERROR%',
'off_email_subject' => 'IMPORTANT: Server \'%LABEL%\' is DOWN',
'off_email_body' => "Failed to connect to the following server:
Server: %LABEL% IP: %IP% Port: %PORT% Error: %ERROR% Date: %DATE%",
+ 'off_pushover_title' => 'Server \'%LABEL%\' is DOWN',
+ 'off_pushover_message' => "Failed to connect to the following server:
Server: %LABEL% IP: %IP% Port: %PORT% Error: %ERROR% Date: %DATE%",
'on_sms' => 'Server \'%LABEL%\' is RUNNING: ip=%IP%, port=%PORT%',
'on_email_subject' => 'IMPORTANT: Server \'%LABEL%\' is RUNNING',
'on_email_body' => "Server '%LABEL%' is running again:
Server: %LABEL% IP: %IP% Port: %PORT% Date: %DATE%',
),
'login' => array(
'welcome_usermenu' => 'Welcome, %user_name%',
@@ -227,4 +290,8 @@ $sm_lang = array(
'success_password_forgot' => 'An email has been sent to you with information how to reset your password.',
'success_password_reset' => 'Your password has been reset successfully. Please login.',
),
+ 'error' => array(
+ '401_unauthorized' => 'Unauthorized',
+ '401_unauthorized_description' => 'You do not have the privileges to view this page.',
+ ),
);
diff --git a/src/lang/es_ES.lang.php b/src/lang/es_ES.lang.php
index 65b3c9aa..095f3e4b 100644
--- a/src/lang/es_ES.lang.php
+++ b/src/lang/es_ES.lang.php
@@ -35,17 +35,17 @@ $sm_lang = array(
'save' => 'Guardar',
'edit' => 'Modificar',
'delete' => 'Eliminar',
- 'deleted' => 'Registro eliminado',
'date' => 'Fecha',
'message' => 'Mensaje',
'yes' => 'Si',
'no' => 'No',
- 'edit' => 'Modificar',
'insert' => 'Insertar',
'add_new' => 'Agregar nuevo',
'update_available' => 'Hay una nueva versión ({version}) disponible en http://www.phpservermonitor.org.',
'back_to_top' => 'Back to top',
'go_back' => 'Go back',
+ 'ok' => 'OK',
+ 'cancel' => 'Cancel',
// date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
'short_day_format' => '%B %e',
'long_day_format' => '%B %e, %Y',
@@ -81,6 +81,14 @@ $sm_lang = array(
'level_description' => 'Administrators have full access: they can manage servers, users and edit the global configuration. Users can only view and run the updater for the servers that have been assigned to them.',
'mobile' => 'Mobil',
'email' => 'Email',
+ 'pushover' => 'Pushover',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_key' => 'Pushover Key',
+ 'pushover_device' => 'Pushover Device',
+ 'pushover_device_description' => 'Device name to send the message to. Leave empty to send it to all devices.',
+ 'delete_title' => 'Delete User',
+ 'delete_message' => 'Are you sure you want to delete user \'%1\'?',
+ 'deleted' => 'User deleted.',
'updated' => 'Usuario actualizado.',
'inserted' => 'Usuario ingresado.',
'profile' => 'Profile',
@@ -101,11 +109,16 @@ $sm_lang = array(
'status' => 'Estado',
'email' => 'Email',
'sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'no_logs' => 'No logs',
),
'servers' => array(
'server' => 'Servidores',
+ 'status' => 'Status',
'label' => 'Titulo',
'domain' => 'Domain/IP',
+ 'timeout' => 'Timeout',
+ 'timeout_description' => 'Number of seconds to wait for the server to respond.',
'port' => 'Port',
'type' => 'Tipo',
'type_website' => 'Website',
@@ -115,14 +128,23 @@ $sm_lang = array(
'last_check' => 'Ultima verificación',
'last_online' => 'Última vez en línea',
'monitoring' => 'Monitoreo',
+ 'no_monitoring' => 'No monitoring',
+ 'email' => 'Email',
'send_email' => 'Email',
+ 'sms' => 'SMS',
'send_sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'users' => 'Users',
+ 'delete_title' => 'Delete Server',
+ 'delete_message' => 'Are you sure you want to delete server \'%1\'?',
+ 'deleted' => 'Server deleted.',
'updated' => 'Servidor arctualizado.',
'inserted' => 'Servidor ingresado.',
'latency' => 'Tiempo de respuesta',
'latency_max' => 'Tiempo de respuesta (maximum)',
'latency_min' => 'Tiempo de respuesta (minimum)',
'latency_avg' => 'Tiempo de respuesta (average)',
+ 'uptime' => 'Uptime',
'year' => 'Year',
'month' => 'Month',
'week' => 'Week',
@@ -137,6 +159,16 @@ $sm_lang = array(
'chart_long_date_format' => '%Y-%m-%d %H:%M:%S',
'chart_short_date_format' => '%m/%d %H:%M',
'chart_short_time_format' => '%H:%M',
+ 'warning_notifications_disabled_sms' => 'SMS notifications are disabled.',
+ 'warning_notifications_disabled_email' => 'Email notifications are disabled.',
+ 'warning_notifications_disabled_pushover' => 'Pushover notifications are disabled.',
+ 'error_server_no_match' => 'Server not found.',
+ 'error_server_label_bad_length' => 'The label must be between 1 and 255 characters.',
+ 'error_server_ip_bad_length' => 'The domain / IP must be between 1 and 255 characters.',
+ 'error_server_ip_bad_service' => 'The IP address is not valid.',
+ 'error_server_ip_bad_website' => 'The website URL is not valid.',
+ 'error_server_type_invalid' => 'The selected server type is invalid.',
+ 'error_server_warning_threshold_invalid' => 'The warning threshold must be a valid integer greater than 0.',
),
'config' => array(
'general' => 'General',
@@ -159,10 +191,17 @@ $sm_lang = array(
'sms_gateway_inetworx' => 'Inetworx',
'sms_gateway_clickatell' => 'Clickatell',
'sms_gateway_textmarketer' => 'Textmarketer',
+ 'sms_gateway_smsglobal' => 'SMSGlobal',
+ 'sms_gateway_smsit' => 'Smsit',
'sms_gateway_username' => 'Gateway username',
'sms_gateway_password' => 'Gateway password',
'sms_from' => 'Número origen del SMS',
- 'alert_type' => 'Cuando desea recibir notificaciones ? ',
+ 'pushover_status' => 'Allow sending Pushover messages',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_clone_app' => 'Click here to create your Pushover app',
+ 'pushover_api_token' => 'Pushover App API Token',
+ 'pushover_api_token_description' => 'Before you can use Pushover, you need to register an App at their website and enter the App API Token here.',
+ 'alert_type' => 'Cuando desea recibir notificaciones ?',
'alert_type_description' => '... Al cambiar el estado: '.
'p.ej. online -> offline o offline -> online. '.
' Offline: '.
@@ -178,12 +217,14 @@ $sm_lang = array(
'log_status_description' => 'Al setear TRUE (marcar) se protocolan todos los estados.',
'log_email' => 'Enviar Log via email?',
'log_sms' => 'Enviar Log via SMS ?',
+ 'log_pushover' => 'Log pushover messages sent by the script',
'updated' => 'Configuración guardada.',
'tab_email' => 'Email',
'tab_sms' => 'SMS',
- 'tab_log' => 'Log',
+ 'tab_pushover' => 'Pushover',
'settings_email' => 'Email',
'settings_sms' => 'Mensaje SMS',
+ 'settings_pushover' => 'Pushover settings',
'settings_notification' => 'Notificación',
'settings_log' => 'Log',
'auto_refresh' => 'Refrescar automáticamente página de servidores',
@@ -193,15 +234,38 @@ $sm_lang = array(
'Tiempo en segundos, indicar "0" para no actualizar.'.
'',
'seconds' => 'seconds',
+ 'test' => 'Test',
+ 'test_email' => 'An email will be sent to the address specified in your user profile.',
+ 'test_sms' => 'An SMS will be sent to the phone number specified in your user profile.',
+ 'test_pushover' => 'A Pushover notification will be sent to the user key/device specified in your user profile.',
+ 'send' => 'Send',
+ 'test_subject' => 'Test',
+ 'test_message' => 'Test message',
+ 'email_sent' => 'Email sent',
+ 'email_error' => 'Error in email sending',
+ 'sms_sent' => 'Sms sent',
+ 'sms_error' => 'Error in sms sending',
+ 'sms_error_nomobile' => 'Unable to send test SMS: no valid phone number found in your profile.',
+ 'pushover_sent' => 'Pushover notification sent',
+ 'pushover_error' => 'An error has occurred while sending the Pushover notification: %s',
+ 'pushover_error_noapp' => 'Unable to send test notification: no Pushover App API token found in the global configuration.',
+ 'pushover_error_nokey' => 'Unable to send test notification: no Pushover key found in your profile.',
+ 'log_retention_period' => 'Log retention period',
+ 'log_retention_period_description' => 'Number of days to keep logs of notifications and archives of server uptime. Enter 0 to disable log cleanup.',
+ 'log_retention_days' => 'days',
),
// for newlines in the email messages use
'notifications' => array(
'off_sms' => 'Servidor \'%LABEL%\' está fuera de línea: ip=%IP%, port=%PORT%. error=%ERROR%',
'off_email_subject' => 'Importante: Servidor \'%LABEL%\' está fuera de línea',
'off_email_body' => "No posible conectar al servidor:
Servidor: %LABEL% IP: %IP% Port: %PORT% Error: %ERROR% Fecha: %DATE%",
+ 'off_pushover_title' => 'Servidor \'%LABEL%\' está fuera de línea',
+ 'off_pushover_message' => "No posible conectar al servidor:
Servidor: %LABEL% IP: %IP% Port: %PORT% Error: %ERROR% Fecha: %DATE%",
'on_sms' => 'Servidor \'%LABEL%\' ya está de nuevo funcionando en línea: ip=%IP%, port=%PORT%',
'on_email_subject' => 'Importante: Servidor \'%LABEL%\' ya está de nuevo en línea',
'on_email_body' => "Servidor '%LABEL%' ya está funcionando en línea de nuevo:
Servidor: %LABEL% IP: %IP% Port: %PORT% Fecha: %DATE%",
+ 'on_pushover_title' => 'Servidor \'%LABEL%\' ya está de nuevo en línea',
+ 'on_pushover_message' => "Servidor '%LABEL%' ya está funcionando en línea de nuevo:
Servidor: %LABEL% IP: %IP% Port: %PORT% Fecha: %DATE%",
),
'login' => array(
'welcome_usermenu' => 'Welcome, %user_name%',
@@ -226,4 +290,8 @@ $sm_lang = array(
'success_password_forgot' => 'An email has been sent to you with information how to reset your password.',
'success_password_reset' => 'Your password has been reset successfully. Please login.',
),
+ 'error' => array(
+ '401_unauthorized' => 'Unauthorized',
+ '401_unauthorized_description' => 'You do not have the privileges to view this page.',
+ ),
);
diff --git a/src/lang/fr_FR.lang.php b/src/lang/fr_FR.lang.php
index 719c5e19..cab685a7 100644
--- a/src/lang/fr_FR.lang.php
+++ b/src/lang/fr_FR.lang.php
@@ -19,6 +19,7 @@
*
* @package phpservermon
* @author David Ribeiro
+ * @author Jérôme Cabanis
* @copyright Copyright (c) 2008-2014 Pepijn Over
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
* @version Release: @package_version@
@@ -35,17 +36,17 @@ $sm_lang = array(
'save' => 'Enregistrer',
'edit' => 'Editer',
'delete' => 'Supprimer',
- 'deleted' => 'L\'enregistrement a été supprimé',
'date' => 'Date',
'message' => 'Message',
'yes' => 'Oui',
'no' => 'Non',
- 'edit' => 'Editer',
'insert' => 'Nouveau',
'add_new' => 'Nouveau',
'update_available' => 'Une nouvelle version ({version}) est disponible à l\'adresse http://www.phpservermonitor.org.',
'back_to_top' => 'Haut de page',
'go_back' => 'Retour',
+ 'ok' => 'OK',
+ 'cancel' => 'Annuler',
// date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
'short_day_format' => 'Le %e %B',
'long_day_format' => 'Le %e %B %Y',
@@ -79,8 +80,16 @@ $sm_lang = array(
'level_10' => 'Administrateur',
'level_20' => 'Utilisateur',
'level_description' => 'Les Administrateurs ont un accès total. Ils peuvent gérer les serveurs, les utilisateurs et éditer la configuration globale. Les Utilisateurs ne peuvent que voir et mettre à jour les serveurs qui leur ont été assignés.',
- 'mobile' => 'Numéro de téléphone',
+ 'mobile' => 'Téléphone',
'email' => 'Email',
+ 'pushover' => 'Pushover',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_key' => 'Pushover Key',
+ 'pushover_device' => 'Pushover Device',
+ 'pushover_device_description' => 'Device name to send the message to. Leave empty to send it to all devices.',
+ 'delete_title' => 'Supprimer un utilisateur',
+ 'delete_message' => 'Êtes-vous sûr de vouloir supprimer l\'utilisateur \'%1\' ?',
+ 'deleted' => 'Utilisateur supprimé.',
'updated' => 'Utilisateur mis à jour.',
'inserted' => 'Utilisateur ajouté.',
'profile' => 'Profil',
@@ -101,11 +110,16 @@ $sm_lang = array(
'status' => 'État',
'email' => 'email',
'sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'no_logs' => 'Aucun événement',
),
'servers' => array(
'server' => 'Serveur',
- 'label' => 'Description',
+ 'status' => 'État',
+ 'label' => 'Nom',
'domain' => 'Domaine/IP',
+ 'timeout' => 'Timeout',
+ 'timeout_description' => 'Number of seconds to wait for the server to respond.',
'port' => 'Port',
'type' => 'Type',
'type_website' => 'Site Web',
@@ -115,14 +129,23 @@ $sm_lang = array(
'last_check' => 'Dernière vérification',
'last_online' => 'Dernière fois OK',
'monitoring' => 'Serveillé',
+ 'no_monitoring' => 'Non serveillé',
+ 'email' => 'Email',
'send_email' => 'Envoyer un email',
+ 'sms' => 'SMS',
'send_sms' => 'Envoyer un SMS',
+ 'pushover' => 'Pushover',
+ 'users' => 'Users',
+ 'delete_title' => 'Supprimer un serveur',
+ 'delete_message' => 'Êtes-vous sûr de vouloir supprimer le serveur \'%1\' ?',
+ 'deleted' => 'Serveur supprimé.',
'updated' => 'Serveur mis à jour.',
'inserted' => 'Serveur ajouté.',
'latency' => 'Temps de réponse',
'latency_max' => 'Temps de réponse maximum',
'latency_min' => 'Temps de réponse minimum',
'latency_avg' => 'Temps de réponse moyen',
+ 'uptime' => 'Disponibilité',
'year' => 'Année',
'month' => 'Mois',
'week' => 'Semaine',
@@ -137,6 +160,16 @@ $sm_lang = array(
'chart_long_date_format' => '%d/%m/%Y %H:%M:%S',
'chart_short_date_format' => '%d/%m %H:%M',
'chart_short_time_format' => '%H:%M',
+ 'warning_notifications_disabled_sms' => 'SMS notifications are disabled.',
+ 'warning_notifications_disabled_email' => 'Email notifications are disabled.',
+ 'warning_notifications_disabled_pushover' => 'Pushover notifications are disabled.',
+ 'error_server_no_match' => 'Serveur non trouvé.',
+ 'error_server_label_bad_length' => 'Le nom doit avoir entre 1 et 255 caractères.',
+ 'error_server_ip_bad_length' => 'Domaine/IP doit avoir entre 1 et 255 caractères.',
+ 'error_server_ip_bad_service' => 'L\'adresse IP n\'est pas valide.',
+ 'error_server_ip_bad_website' => 'L\'URL du site web n\'est pas valide.',
+ 'error_server_type_invalid' => 'Le type de service sélectionné n\'est pas valide.',
+ 'error_server_warning_threshold_invalid' => 'Le seuil d\'alerte doit être un nombre entier supérieur à 0.',
),
'config' => array(
'general' => 'Général',
@@ -159,10 +192,17 @@ $sm_lang = array(
'sms_gateway_inetworx' => 'Inetworx',
'sms_gateway_clickatell' => 'Clickatell',
'sms_gateway_textmarketer' => 'Textmarketer',
+ 'sms_gateway_smsglobal' => 'SMSGlobal',
+ 'sms_gateway_smsit' => 'Smsit',
'sms_gateway_username' => 'Nom utilisateur de la passerelle',
'sms_gateway_password' => 'Mot de passe de la passerelle',
'sms_from' => 'SMS de l\'expéditeur',
- 'alert_type' => 'Choisissez quand vous souhaitez être notifié. ',
+ 'pushover_status' => 'Allow sending Pushover messages',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_clone_app' => 'Click here to create your Pushover app',
+ 'pushover_api_token' => 'Pushover App API Token',
+ 'pushover_api_token_description' => 'Before you can use Pushover, you need to register an App at their website and enter the App API Token here.',
+ 'alert_type' => 'Choisissez quand vous souhaitez être notifié',
'alert_type_description' => 'Changement d\'état : '.
'Vous recevez une notification chaque fois que le serveur change d\'état. C\'est-à-dire passe de l\'état OK à HORS SERVICE ou de HORS SERVICE à OK. '.
' Hors service : '.
@@ -178,12 +218,14 @@ $sm_lang = array(
'log_status_description' => 'Si l\'option est activée, un événement est enregistré chaque fois qu\'une notification a lieu.',
'log_email' => 'Enregistrer tout les emails envoyés',
'log_sms' => 'Enregistrer tout les SMS envoyés',
+ 'log_pushover' => 'Log pushover messages sent by the script',
'updated' => 'La configuration a été mise à jour.',
'tab_email' => 'Email',
'tab_sms' => 'SMS',
- 'tab_log' => 'Événements',
+ 'tab_pushover' => 'Pushover',
'settings_email' => 'Configuration email',
'settings_sms' => 'Configuration SMS',
+ 'settings_pushover' => 'Pushover settings',
'settings_notification' => 'Configuration des notifications',
'settings_log' => 'Configuration des événements',
'auto_refresh' => 'Auto-rachaîchissement',
@@ -193,15 +235,38 @@ $sm_lang = array(
'Temps en secondes. Si 0, la page n\'est pas rafraîchie.'.
'',
'seconds' => 'secondes',
+ 'test' => 'Tester',
+ 'test_email' => 'Un email va vous être envoyé à l\'adresse définie dans votre profil utilisateur.',
+ 'test_sms' => 'Un SMS va vous être envoyé au numéro défini dans votre profil utilisateur.',
+ 'test_pushover' => 'A Pushover notification will be sent to the user key/device specified in your user profile.',
+ 'send' => 'Envoyer',
+ 'test_subject' => 'Test',
+ 'test_message' => 'Message de test',
+ 'email_sent' => 'Email envoyé',
+ 'email_error' => 'Erreur lors de l\'envoie de l\'email',
+ 'sms_sent' => 'Sms envoyé',
+ 'sms_error' => 'Erreur lors de l\'envoie du sms',
+ 'sms_error_nomobile' => 'Unable to send test SMS: no valid phone number found in your profile.',
+ 'pushover_sent' => 'Pushover notification sent',
+ 'pushover_error' => 'An error has occurred while sending the Pushover notification: %s',
+ 'pushover_error_noapp' => 'Unable to send test notification: no Pushover App API token found in the global configuration.',
+ 'pushover_error_nokey' => 'Unable to send test notification: no Pushover key found in your profile.',
+ 'log_retention_period' => 'Log retention period',
+ 'log_retention_period_description' => 'Number of days to keep logs of notifications and archives of server uptime. Enter 0 to disable log cleanup.',
+ 'log_retention_days' => 'days',
),
// for newlines in the email messages use
'notifications' => array(
'off_sms' => 'Le Serveur \'%LABEL%\' est HORS SERVICE: IP=%IP%, Port=%PORT%. Erreur=%ERROR%',
'off_email_subject' => 'IMPORTANT: Le Serveur \'%LABEL%\' est HORS SERVICE',
'off_email_body' => "Impossible de se connecter au serveur suivant:
Serveur: %LABEL% IP: %IP% Port: %PORT% Erreur: %ERROR% Date: %DATE%",
+ 'off_pushover_title' => 'Le Serveur \'%LABEL%\' est HORS SERVICE',
+ 'off_pushover_message' => "Impossible de se connecter au serveur suivant:
Serveur: %LABEL% IP: %IP% Port: %PORT% Erreur: %ERROR% Date: %DATE%",
'on_sms' => 'Le Serveur \'%LABEL%\' est OK: IP=%IP%, Port=%PORT%',
'on_email_subject' => 'IMPORTANT: Le Serveur \'%LABEL%\' est OK',
'on_email_body' => "Le Serveur '%LABEL%' est de nouveau OK:
Serveur: %LABEL% IP: %IP% Port: %PORT% Date: %DATE%",
+ 'on_pushover_title' => 'Le Serveur \'%LABEL%\' est OK',
+ 'on_pushover_message' => "Le Serveur '%LABEL%' est de nouveau OK:
Serveur: %LABEL% IP: %IP% Port: %PORT% Date: %DATE%",
),
'login' => array(
'welcome_usermenu' => 'Bonjour %user_name%',
@@ -226,4 +291,8 @@ $sm_lang = array(
'success_password_forgot' => 'Un email vous a été envoyé pour réinitialiser votre mot de passe.',
'success_password_reset' => 'Votre mot de passe a été réinitialisé.',
),
+ 'error' => array(
+ '401_unauthorized' => 'Unauthorized',
+ '401_unauthorized_description' => 'You do not have the privileges to view this page.',
+ ),
);
diff --git a/src/lang/it_IT.lang.php b/src/lang/it_IT.lang.php
index 52f12219..86da1063 100644
--- a/src/lang/it_IT.lang.php
+++ b/src/lang/it_IT.lang.php
@@ -35,17 +35,17 @@ $sm_lang = array(
'save' => 'Salva',
'edit' => 'Modifica',
'delete' => 'Elimina',
- 'deleted' => 'L\'oggetto è stato eliminato',
'date' => 'Data',
'message' => 'Messaggio',
'yes' => 'Sì',
'no' => 'No',
- 'edit' => 'Modifica',
'insert' => 'Inserisci',
'add_new' => 'Aggiungi Nuovo?',
'update_available' => 'Un nuovo aggiornamento ({version}) è disponibile su http://www.phpservermonitor.org.',
'back_to_top' => 'Back to top',
'go_back' => 'Go back',
+ 'ok' => 'OK',
+ 'cancel' => 'Cancel',
// date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
'short_day_format' => '%B %e',
'long_day_format' => '%B %e, %Y',
@@ -69,7 +69,7 @@ $sm_lang = array(
'help' => 'Aiuto',
),
'users' => array(
- 'user' => 'utente',
+ 'user' => 'Utente',
'name' => 'Nome',
'user_name' => 'Username',
'password' => 'Password',
@@ -81,6 +81,14 @@ $sm_lang = array(
'level_description' => 'Administrators have full access: they can manage servers, users and edit the global configuration. Users can only view and run the updater for the servers that have been assigned to them.',
'mobile' => 'Cellulare',
'email' => 'Email',
+ 'pushover' => 'Pushover',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_key' => 'Pushover Key',
+ 'pushover_device' => 'Pushover Device',
+ 'pushover_device_description' => 'Device name to send the message to. Leave empty to send it to all devices.',
+ 'delete_title' => 'Delete User',
+ 'delete_message' => 'Are you sure you want to delete user \'%1\'?',
+ 'deleted' => 'User deleted.',
'updated' => 'Utente aggiornato.',
'inserted' => 'Utente aggiunto.',
'profile' => 'Profile',
@@ -101,11 +109,16 @@ $sm_lang = array(
'status' => 'Stato',
'email' => 'Email',
'sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'no_logs' => 'No logs',
),
'servers' => array(
'server' => 'Server',
+ 'status' => 'Status',
'label' => 'Nome',
'domain' => 'Dominio/IP',
+ 'timeout' => 'Timeout',
+ 'timeout_description' => 'Number of seconds to wait for the server to respond.',
'port' => 'Porta',
'type' => 'Tipo',
'type_website' => 'Website',
@@ -115,14 +128,23 @@ $sm_lang = array(
'last_check' => 'Ultimo Controllo',
'last_online' => 'Ultima volta Online',
'monitoring' => 'Sotto Controllo',
+ 'no_monitoring' => 'No monitoring',
+ 'email' => 'Email',
'send_email' => 'Invia Email',
+ 'sms' => 'SMS',
'send_sms' => 'Invia SMS',
+ 'pushover' => 'Pushover',
+ 'users' => 'Users',
+ 'delete_title' => 'Delete Server',
+ 'delete_message' => 'Are you sure you want to delete server \'%1\'?',
+ 'deleted' => 'Server deleted.',
'updated' => 'Server aggiornato.',
'inserted' => 'Server aggiunto.',
'latency' => 'Tempo di risposta',
'latency_max' => 'Tempo di risposta (maximum)',
'latency_min' => 'Tempo di risposta (minimum)',
'latency_avg' => 'Tempo di risposta (average)',
+ 'uptime' => 'Uptime',
'year' => 'Year',
'month' => 'Month',
'week' => 'Week',
@@ -137,6 +159,16 @@ $sm_lang = array(
'chart_long_date_format' => '%Y-%m-%d %H:%M:%S',
'chart_short_date_format' => '%m/%d %H:%M',
'chart_short_time_format' => '%H:%M',
+ 'warning_notifications_disabled_sms' => 'SMS notifications are disabled.',
+ 'warning_notifications_disabled_email' => 'Email notifications are disabled.',
+ 'warning_notifications_disabled_pushover' => 'Pushover notifications are disabled.',
+ 'error_server_no_match' => 'Server not found.',
+ 'error_server_label_bad_length' => 'The label must be between 1 and 255 characters.',
+ 'error_server_ip_bad_length' => 'The domain / IP must be between 1 and 255 characters.',
+ 'error_server_ip_bad_service' => 'The IP address is not valid.',
+ 'error_server_ip_bad_website' => 'The website URL is not valid.',
+ 'error_server_type_invalid' => 'The selected server type is invalid.',
+ 'error_server_warning_threshold_invalid' => 'The warning threshold must be a valid integer greater than 0.',
),
'config' => array(
'general' => 'Generale',
@@ -159,10 +191,17 @@ $sm_lang = array(
'sms_gateway_inetworx' => 'Inetworx',
'sms_gateway_clickatell' => 'Clickatell',
'sms_gateway_textmarketer' => 'Textmarketer',
+ 'sms_gateway_smsglobal' => 'SMSGlobal',
+ 'sms_gateway_smsit' => 'Smsit',
'sms_gateway_username' => 'Nome Utente Gateway',
'sms_gateway_password' => 'Password Gateway',
'sms_from' => 'Numero di telefono del mittente',
- 'alert_type' => 'Seleziona quando vuoi essere notificato. ',
+ 'pushover_status' => 'Allow sending Pushover messages',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_clone_app' => 'Click here to create your Pushover app',
+ 'pushover_api_token' => 'Pushover App API Token',
+ 'pushover_api_token_description' => 'Before you can use Pushover, you need to register an App at their website and enter the App API Token here.',
+ 'alert_type' => 'Seleziona quando vuoi essere notificato',
'alert_type_description' => 'Cambio di Stato: '.
'Riceverai una notifica solo quando un server cambierà stato. Quindi da online -> offline oppure da offline -> online. '.
' Offline: '.
@@ -178,12 +217,14 @@ $sm_lang = array(
'log_status_description' => 'Se lo Stato Log è impostato su VERO, il monitor registrerà nel log gli eventi appena le notifiche verranno inviate.',
'log_email' => 'Registra email inviate dallo script.',
'log_sms' => 'Registra SMS inviati dallo script.',
+ 'log_pushover' => 'Log pushover messages sent by the script',
'updated' => 'La configurazione è stato aggiornata.',
'tab_email' => 'Email',
'tab_sms' => 'SMS',
- 'tab_log' => 'Log',
+ 'tab_pushover' => 'Pushover',
'settings_email' => 'Impostazioni Email',
'settings_sms' => 'Impostazioni SMS',
+ 'settings_pushover' => 'Pushover settings',
'settings_notification' => 'Impostazioni Notifiche',
'settings_log' => 'Impostazioni Log',
'auto_refresh' => 'Auto-Aggiorna pagina servers',
@@ -193,15 +234,38 @@ $sm_lang = array(
'Tempo in secondi, se impostato a 0 la pagina non si aggiornerà.'.
'',
'seconds' => 'seconds',
+ 'test' => 'Test',
+ 'test_email' => 'An email will be sent to the address specified in your user profile.',
+ 'test_sms' => 'An SMS will be sent to the phone number specified in your user profile.',
+ 'test_pushover' => 'A Pushover notification will be sent to the user key/device specified in your user profile.',
+ 'send' => 'Send',
+ 'test_subject' => 'Test',
+ 'test_message' => 'Test message',
+ 'email_sent' => 'Email sent',
+ 'email_error' => 'Error in email sending',
+ 'sms_sent' => 'Sms sent',
+ 'sms_error' => 'Error in sms sending',
+ 'sms_error_nomobile' => 'Unable to send test SMS: no valid phone number found in your profile.',
+ 'pushover_sent' => 'Pushover notification sent',
+ 'pushover_error' => 'An error has occurred while sending the Pushover notification: %s',
+ 'pushover_error_noapp' => 'Unable to send test notification: no Pushover App API token found in the global configuration.',
+ 'pushover_error_nokey' => 'Unable to send test notification: no Pushover key found in your profile.',
+ 'log_retention_period' => 'Log retention period',
+ 'log_retention_period_description' => 'Number of days to keep logs of notifications and archives of server uptime. Enter 0 to disable log cleanup.',
+ 'log_retention_days' => 'days',
),
// for newlines in the email messages use
'notifications' => array(
'off_sms' => 'Server \'%LABEL%\' è DOWN: ip=%IP%, porta=%PORT%. Errore=%ERROR%',
'off_email_subject' => 'IMPORTANTE: Server \'%LABEL%\' è DOWN',
'off_email_body' => "Impossibile connettersi al seguente server:
Server: %LABEL% IP: %IP% Port: %PORT% Date: %DATE%",
),
'login' => array(
'welcome_usermenu' => 'Welcome, %user_name%',
@@ -225,4 +290,8 @@ $sm_lang = array(
'success_password_forgot' => 'An email has been sent to you with information how to reset your password.',
'success_password_reset' => 'Your password has been reset successfully. Please login.',
),
+ 'error' => array(
+ '401_unauthorized' => 'Unauthorized',
+ '401_unauthorized_description' => 'You do not have the privileges to view this page.',
+ ),
);
diff --git a/src/lang/nl_NL.lang.php b/src/lang/nl_NL.lang.php
index 846db258..8a273710 100644
--- a/src/lang/nl_NL.lang.php
+++ b/src/lang/nl_NL.lang.php
@@ -30,22 +30,22 @@ $sm_lang = array(
'locale' => array('nl_NL.UTF-8', 'nl_NL', 'dutch'),
'system' => array(
'title' => 'Server Monitor',
- 'install' => 'Install',
+ 'install' => 'Intalleren',
'action' => 'Actie',
'save' => 'Opslaan',
'edit' => 'Wijzig',
'delete' => 'Verwijder',
- 'deleted' => 'Record is verwijderd',
'date' => 'Datum',
'message' => 'Bericht',
'yes' => 'Ja',
'no' => 'Nee',
- 'edit' => 'Wijzig',
'insert' => 'Voeg toe',
'add_new' => 'Voeg toe',
'update_available' => 'Een nieuwe update ({version}) is beschikbaar op http://www.phpservermonitor.org.',
'back_to_top' => 'Terug naar boven',
'go_back' => 'Terug',
+ 'ok' => 'OK',
+ 'cancel' => 'Cancel',
// date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
'short_day_format' => '%B %e',
'long_day_format' => '%B %e, %Y',
@@ -60,7 +60,7 @@ $sm_lang = array(
'a_second_ago' => 'een seconde geleden',
),
'menu' => array(
- 'config' => 'Config',
+ 'config' => 'Configuratie',
'server' => 'Servers',
'server_log' => 'Log',
'server_status' => 'Status',
@@ -69,7 +69,7 @@ $sm_lang = array(
'help' => 'Help',
),
'users' => array(
- 'user' => 'gebruiker',
+ 'user' => 'Gebruiker',
'name' => 'Naam',
'user_name' => 'Gebruikersnaam',
'password' => 'Wachtwoord',
@@ -81,6 +81,14 @@ $sm_lang = array(
'level_description' => 'Beheerders hebben volledige toegang: ze kunnen servers en gebruiker beheren en de globale configuratie aanpassen. Gebruikers kunnen alleen de servers bekijken en op fouten testen die aan hun zijn toegewezen.',
'mobile' => 'Mobiel',
'email' => 'Email',
+ 'pushover' => 'Pushover',
+ 'pushover_description' => 'Pushover is een dienst die het gemakkelijk maakt om real-time notificaties te ontvangen. Zie hun website voor meer informatie.',
+ 'pushover_key' => 'Pushover Key',
+ 'pushover_device' => 'Pushover Device',
+ 'pushover_device_description' => 'Apparaat waar de berichten naar toe gaan. Laat leeg voor alle apparaten.',
+ 'delete_title' => 'Verwijder gebruiker',
+ 'delete_message' => 'Weet je zeker dat je deze gebruiker wilt verwijderen: \'%1\'?',
+ 'deleted' => 'Gebruiker verwijderd.',
'updated' => 'Gebruiker gewijzigd.',
'inserted' => 'Gebruiker toegevoegd.',
'profile' => 'Profiel',
@@ -101,11 +109,16 @@ $sm_lang = array(
'status' => 'Status',
'email' => 'Email',
'sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'no_logs' => 'No logs',
),
'servers' => array(
'server' => 'Server',
+ 'status' => 'Status',
'label' => 'Label',
'domain' => 'Domein/IP',
+ 'timeout' => 'Timeout',
+ 'timeout_description' => 'Aantal seconden te wachten op een reactie van de server.',
'port' => 'Poort',
'type' => 'Type',
'type_website' => 'Website',
@@ -115,14 +128,23 @@ $sm_lang = array(
'last_check' => 'Laatst gecontroleerd',
'last_online' => 'Laatst online',
'monitoring' => 'Monitoring',
+ 'no_monitoring' => 'No monitoring',
+ 'email' => 'Email',
'send_email' => 'Stuur email',
+ 'sms' => 'SMS',
'send_sms' => 'Stuur SMS',
+ 'pushover' => 'Pushover',
+ 'users' => 'Gebruikers',
+ 'delete_title' => 'Verwijder server',
+ 'delete_message' => 'Weet je zeker dat je deze server wilt verwijderen: \'%1\'?',
+ 'deleted' => 'Server verwijderd.',
'updated' => 'Server gewijzigd.',
'inserted' => 'Server toegevoegd.',
'latency' => 'Response tijd',
'latency_max' => 'Latency (maximum)',
'latency_min' => 'Latency (minimum)',
'latency_avg' => 'Latency (gemiddeld)',
+ 'uptime' => 'Uptime',
'year' => 'Jaar',
'month' => 'Maand',
'week' => 'Week',
@@ -137,6 +159,16 @@ $sm_lang = array(
'chart_long_date_format' => '%d-%m-%Y %H:%M:%S',
'chart_short_date_format' => '%d-%m %H:%M',
'chart_short_time_format' => '%H:%M',
+ 'warning_notifications_disabled_sms' => 'SMS notificaties zijn uitgeschakeld.',
+ 'warning_notifications_disabled_email' => 'Email notificaties zijn uitgeschakeld.',
+ 'warning_notifications_disabled_pushover' => 'Pushover notificaties zijn uitgeschakeld.',
+ 'error_server_no_match' => 'Server niet gevonden.',
+ 'error_server_label_bad_length' => 'Het label moet tussen de 1 en 255 karakters lang zijn.',
+ 'error_server_ip_bad_length' => 'Het domein / IP moet tussen de 1 en 255 karakters lang zijn.',
+ 'error_server_ip_bad_service' => 'Het IP adres is ongeldig.',
+ 'error_server_ip_bad_website' => 'De website URL is ongeldig.',
+ 'error_server_type_invalid' => 'Het geselecteerde server type is ongeldig.',
+ 'error_server_warning_threshold_invalid' => 'De warning threshold moet een numerieke waarde zijn groter dan 0.',
),
'config' => array(
'general' => 'Algemeen',
@@ -159,10 +191,17 @@ $sm_lang = array(
'sms_gateway_inetworx' => 'Inetworx',
'sms_gateway_clickatell' => 'Clickatell',
'sms_gateway_textmarketer' => 'Textmarketer',
+ 'sms_gateway_smsglobal' => 'SMSGlobal',
+ 'sms_gateway_smsit' => 'Smsit',
'sms_gateway_username' => 'Gateway gebruikersnaam',
'sms_gateway_password' => 'Gateway wachtwoord',
'sms_from' => 'Telefoonnummer afzender',
- 'alert_type' => 'Selecteer wanneer je een notificatie wilt. ',
+ 'pushover_status' => 'Sta Pushover berichten toe?',
+ 'pushover_description' => 'Pushover is een dienst die het gemakkelijk maakt om real-time notificaties te ontvangen. Zie hun website voor meer informatie.',
+ 'pushover_clone_app' => 'Klik hier om je Pushover app te maken',
+ 'pushover_api_token' => 'Pushover App API Token',
+ 'pushover_api_token_description' => 'Voordat je Pushover kunt gebruiken moet je een App registreren via hun website, en daarvan de App API Token hier invullen.',
+ 'alert_type' => 'Selecteer wanneer je een notificatie wilt',
'alert_type_description' => 'Status change: '.
'Je ontvangt alleen bericht wanneer een server van status verandert. Dus van online -> offline of offline -> online. '.
' Offline: '.
@@ -178,12 +217,14 @@ $sm_lang = array(
'log_status_description' => 'Als de log status aan staat, zal de monitor een log aanmaken elke keer dat hij door de notificatie instellingen komt.',
'log_email' => 'Log emails verstuurd bij het script?',
'log_sms' => 'Log sms berichten verstuurd bij het script?',
+ 'log_pushover' => 'Log Pushover berichten verstuurd bij het script?',
'updated' => 'De configuratie is gewijzigd.',
'tab_email' => 'Email',
'tab_sms' => 'SMS',
- 'tab_log' => 'Log',
+ 'tab_pushover' => 'Pushover',
'settings_email' => 'Email instellingen',
'settings_sms' => 'SMS instellingen',
+ 'settings_pushover' => 'Pushover instellingen',
'settings_notification' => 'Notificatie instellingen',
'settings_log' => 'Log instellingen',
'auto_refresh' => 'Auto-refresh',
@@ -192,16 +233,39 @@ $sm_lang = array(
''.
'Tijd in seconden, als de tijd 0 is wordt de pagina niet ververst.'.
'',
- 'seconds' => 'seconds',
+ 'seconds' => 'seconden',
+ 'test' => 'Test',
+ 'test_email' => 'Er zal een email verstuurd worden naar het email adres in je profiel.',
+ 'test_sms' => 'Er zal een SMS verstuurd worden naar het telefoonnummer in je profiel.',
+ 'test_pushover' => 'Er zal een Pushover notificatie verstuurd worden naar de user key/device in je profiel.',
+ 'send' => 'Verstuur',
+ 'test_subject' => 'Test',
+ 'test_message' => 'Test bericht',
+ 'email_sent' => 'Email verzonden',
+ 'email_error' => 'Er is een fout opgetreden tijdens het verzenden',
+ 'sms_sent' => 'SMS verzonden',
+ 'sms_error' => 'Er is een fout opgetreden tijdens het verzenden',
+ 'sms_error_nomobile' => 'Kan test SMS niet verzenden: er is geen telefoonnummer ingevuld in je profiel.',
+ 'pushover_sent' => 'Pushover notificatie verzonden',
+ 'pushover_error' => 'De volgende fout is opgetreden bij het versturen van de Pushover notificatie: %s',
+ 'pushover_error_noapp' => 'Kan test notificatie niet verzenden: er is geen Pushover App API token gevonden in de algemene configuratie.',
+ 'pushover_error_nokey' => 'Kan test notificatie niet verzenden: er is geen Pushover key gevonden in je profiel.',
+ 'log_retention_period' => 'Log retentie periode',
+ 'log_retention_period_description' => 'Aantal dagen dat logs van notificaties en archieven van server uptime worden bewaard. Vul 0 in om log opruiming uit te zetten.',
+ 'log_retention_days' => 'dagen',
),
// for newlines in the email messages use
'notifications' => array(
'off_sms' => 'Server %LABEL% is DOWN: ip=%IP%, poort=%PORT%. Fout=%ERROR%',
'off_email_subject' => 'BELANGRIJK: Server %LABEL% is DOWN',
'off_email_body' => "De server kon niet worden bereikt:
Server: %LABEL% IP: %IP% Poort: %PORT% Fout: %ERROR% Datum: %DATE%",
+ 'off_pushover_title' => 'Server %LABEL% is DOWN',
+ 'off_pushover_message' => "De server kon niet worden bereikt:
Server: %LABEL% IP: %IP% Poort: %PORT% Fout: %ERROR% Datum: %DATE%",
'on_sms' => 'Server %LABEL% is RUNNING: ip=%IP%, poort=%PORT%',
'on_email_subject' => 'BELANGRIJK: Server %LABEL% is RUNNING',
'on_email_body' => "Server %LABEL% is weer online:
Server: %LABEL% IP: %IP% Poort: %PORT% Datum: %DATE%",
+ 'on_pushover_title' => 'Server %LABEL% is RUNNING',
+ 'on_pushover_message' => "Server %LABEL% is weer online:
Server: %LABEL% IP: %IP% Poort: %PORT% Datum: %DATE%",
),
'login' => array(
'welcome_usermenu' => 'Welkom, %user_name%',
@@ -218,7 +282,7 @@ $sm_lang = array(
'password_forgot' => 'Wachtwoord vergeten?',
'password_reset' => 'Wachtwoord herstellen',
'password_reset_email_subject' => 'Wijzig je wachtwoord voor PHP Server Monitor',
- 'password_reset_email_body' => 'Gebruik de onderstaande link om uw wachtwoord te wijzigen. Let op, deze link verloopt na 1 uur.
%link%',
+ 'password_reset_email_body' => 'Gebruik de onderstaande link om je wachtwoord te wijzigen. Let op, deze link verloopt na 1 uur.
%link%',
'error_user_incorrect' => 'De opgegeven gebruikersnaam is onjuist.',
'error_login_incorrect' => 'De informatie is niet juist.',
'error_login_passwords_nomatch' => 'De ingevulde wachtwoorden komen niet overeen.',
@@ -226,4 +290,8 @@ $sm_lang = array(
'success_password_forgot' => 'Er is een mail verstuurd met informatie om je wachtwoord aan te passen.',
'success_password_reset' => 'Je wachtwoord is aangepast. Je kunt nu inloggen.',
),
+ 'error' => array(
+ '401_unauthorized' => 'Unauthorized',
+ '401_unauthorized_description' => 'U heeft niet de juiste bevoegdheden om deze pagina te bekijken.',
+ ),
);
diff --git a/src/lang/pt_BR.lang.php b/src/lang/pt_BR.lang.php
index c625f524..91450b4e 100644
--- a/src/lang/pt_BR.lang.php
+++ b/src/lang/pt_BR.lang.php
@@ -35,17 +35,17 @@ $sm_lang = array(
'save' => 'Salvar',
'edit' => 'Editar',
'delete' => 'Excluir',
- 'deleted' => 'Registro excluído',
'date' => 'Data',
'message' => 'Mensagem',
'yes' => 'Sim',
'no' => 'Não',
- 'edit' => 'Editar',
'insert' => 'Inserir',
'add_new' => 'Adicionar novo',
'update_available' => 'Uma atualização ({version}) disponível em http://www.phpservermonitor.org.',
'back_to_top' => 'Voltar ao topo',
'go_back' => 'Voltar',
+ 'ok' => 'OK',
+ 'cancel' => 'Cancel',
// date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
'short_day_format' => '%e %m',
'long_day_format' => '%e/%m/%Y',
@@ -69,7 +69,7 @@ $sm_lang = array(
'help' => 'Ajuda',
),
'users' => array(
- 'user' => 'usuário',
+ 'user' => 'Usuário',
'name' => 'Nome',
'user_name' => 'Username',
'password' => 'Senha',
@@ -81,6 +81,14 @@ $sm_lang = array(
'level_description' => 'Administradores Tem total acesso: podem gerenciar servidores, usuários e configurações globais. Usuários só podem executar atualizações para servidores que lhe foram atribuídos.',
'mobile' => 'Celular',
'email' => 'Email',
+ 'pushover' => 'Pushover',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_key' => 'Pushover Key',
+ 'pushover_device' => 'Pushover Device',
+ 'pushover_device_description' => 'Device name to send the message to. Leave empty to send it to all devices.',
+ 'delete_title' => 'Delete User',
+ 'delete_message' => 'Are you sure you want to delete user \'%1\'?',
+ 'deleted' => 'User deleted.',
'updated' => 'Usuário atualizado.',
'inserted' => 'Usuário adicionado.',
'profile' => 'Perfil',
@@ -101,11 +109,16 @@ $sm_lang = array(
'status' => 'Status',
'email' => 'Email',
'sms' => 'SMS',
+ 'pushover' => 'Pushover',
+ 'no_logs' => 'No logs',
),
'servers' => array(
'server' => 'Servidor',
+ 'status' => 'Status',
'label' => 'Etiqueta',
'domain' => 'Domínio/IP',
+ 'timeout' => 'Timeout',
+ 'timeout_description' => 'Number of seconds to wait for the server to respond.',
'port' => 'Porta',
'type' => 'Tipo',
'type_website' => 'Website',
@@ -115,14 +128,23 @@ $sm_lang = array(
'last_check' => 'Última verificação',
'last_online' => 'Última vez online',
'monitoring' => 'Monitoramento',
+ 'no_monitoring' => 'No monitoring',
+ 'email' => 'Email',
'send_email' => 'Enviar Email',
+ 'sms' => 'SMS',
'send_sms' => 'Enviar SMS',
+ 'pushover' => 'Pushover',
+ 'users' => 'Users',
+ 'delete_title' => 'Delete Server',
+ 'delete_message' => 'Are you sure you want to delete server \'%1\'?',
+ 'deleted' => 'Server deleted.',
'updated' => 'Servidor atualizado.',
'inserted' => 'Servidor adicionar.',
'latency' => 'Tempo de resposta',
'latency_max' => 'Latência (máxima)',
'latency_min' => 'Latência (minima)',
'latency_avg' => 'Latência (média)',
+ 'uptime' => 'Uptime',
'year' => 'Ano',
'month' => 'Mês',
'week' => 'Semana',
@@ -137,6 +159,16 @@ $sm_lang = array(
'chart_long_date_format' => '%d/%m/%Y %H:%M:%S',
'chart_short_date_format' => '%d/%m %H:%M',
'chart_short_time_format' => '%H:%M',
+ 'warning_notifications_disabled_sms' => 'SMS notifications are disabled.',
+ 'warning_notifications_disabled_email' => 'Email notifications are disabled.',
+ 'warning_notifications_disabled_pushover' => 'Pushover notifications are disabled.',
+ 'error_server_no_match' => 'Server not found.',
+ 'error_server_label_bad_length' => 'The label must be between 1 and 255 characters.',
+ 'error_server_ip_bad_length' => 'The domain / IP must be between 1 and 255 characters.',
+ 'error_server_ip_bad_service' => 'The IP address is not valid.',
+ 'error_server_ip_bad_website' => 'The website URL is not valid.',
+ 'error_server_type_invalid' => 'The selected server type is invalid.',
+ 'error_server_warning_threshold_invalid' => 'The warning threshold must be a valid integer greater than 0.',
),
'config' => array(
'general' => 'Geral',
@@ -159,10 +191,17 @@ $sm_lang = array(
'sms_gateway_inetworx' => 'Inetworx',
'sms_gateway_clickatell' => 'Clickatell',
'sms_gateway_textmarketer' => 'Textmarketer',
+ 'sms_gateway_smsglobal' => 'SMSGlobal',
+ 'sms_gateway_smsit' => 'Smsit',
'sms_gateway_username' => 'Usuário do Gateway',
'sms_gateway_password' => 'Senha do Gateway',
'sms_from' => 'Número de telefone de envio',
- 'alert_type' => 'Selecione como você gostaria de ser notificado. ',
+ 'pushover_status' => 'Allow sending Pushover messages',
+ 'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See their website for more info.',
+ 'pushover_clone_app' => 'Click here to create your Pushover app',
+ 'pushover_api_token' => 'Pushover App API Token',
+ 'pushover_api_token_description' => 'Before you can use Pushover, you need to register an App at their website and enter the App API Token here.',
+ 'alert_type' => 'Selecione como você gostaria de ser notificado.',
'alert_type_description' => 'Mudança de Status: '.
'Você receberá uma notificação quando o seridor tive uma mudança de status. De online -> offline ou offline -> online. '.
' Offline: '.
@@ -170,8 +209,7 @@ $sm_lang = array(
'A cronjob é a cada 15 minutos e seu servidor caiu em 1:00 e permanece offline até 6 am. '.
'Você receberá uma notificação a 1:00 apenas '.
' Sempre: '.
- 'Você receberá uma notificação toda vez que o script é executado e um site esta offline, mesmo se o site tenha ficado '.
- 'offline por horas.',
+ 'Você receberá uma notificação toda vez que o script é executado e um site esta offline, mesmo se o site tenha ficado offline por horas.',
'alert_type_status' => 'Mudança de Status',
'alert_type_offline' => 'Offline',
'alert_type_always' => 'Sempre',
@@ -179,12 +217,14 @@ $sm_lang = array(
'log_status_description' => 'Se o status de registro é definido como TRUE, o monitor irá registrar o evento sempre que as configurações de notificação forem passadas.',
'log_email' => 'Registrar no Log os envios de email feitos pelo script?',
'log_sms' => 'Registrar no Log os envios de mensagens de texto feitos pelo script?',
+ 'log_pushover' => 'Log pushover messages sent by the script',
'updated' => 'A configuração foi atualizada.',
'tab_email' => 'Email',
'tab_sms' => 'Texto',
- 'tab_log' => 'Logs',
+ 'tab_pushover' => 'Pushover',
'settings_email' => 'Configuração de email',
'settings_sms' => 'Configuração de mensagens de texto',
+ 'settings_pushover' => 'Pushover settings',
'settings_notification' => 'Configuração de notificações',
'settings_log' => 'Configuração de Logs',
'auto_refresh' => 'Atualizar automaticamente',
@@ -194,15 +234,38 @@ $sm_lang = array(
'Tempo em segundos, Se 0 a página não será atualizada.'.
'',
'seconds' => 'segundos',
+ 'test' => 'Test',
+ 'test_email' => 'An email will be sent to the address specified in your user profile.',
+ 'test_sms' => 'An SMS will be sent to the phone number specified in your user profile.',
+ 'test_pushover' => 'A Pushover notification will be sent to the user key/device specified in your user profile.',
+ 'send' => 'Send',
+ 'test_subject' => 'Test',
+ 'test_message' => 'Test message',
+ 'email_sent' => 'Email sent',
+ 'email_error' => 'Error in email sending',
+ 'sms_sent' => 'Sms sent',
+ 'sms_error' => 'Error in sms sending',
+ 'sms_error_nomobile' => 'Unable to send test SMS: no valid phone number found in your profile.',
+ 'pushover_sent' => 'Pushover notification sent',
+ 'pushover_error' => 'An error has occurred while sending the Pushover notification: %s',
+ 'pushover_error_noapp' => 'Unable to send test notification: no Pushover App API token found in the global configuration.',
+ 'pushover_error_nokey' => 'Unable to send test notification: no Pushover key found in your profile.',
+ 'log_retention_period' => 'Log retention period',
+ 'log_retention_period_description' => 'Number of days to keep logs of notifications and archives of server uptime. Enter 0 to disable log cleanup.',
+ 'log_retention_days' => 'days',
),
// for newlines in the email messages use
'notifications' => array(
'off_sms' => 'Servidor \'%LABEL%\' está OFFLINE: ip=%IP%, porta=%PORT%. Erro=%ERROR%',
'off_email_subject' => 'IMPORTANTE: Servidor \'%LABEL%\' está OFFLINE',
'off_email_body' => "Falha ao conectar ao servidor:
Servidor: %LABEL% IP: %IP% Porta: %PORT% Erro: %ERROR% Data: %DATE%",
+ 'off_pushover_title' => 'Servidor \'%LABEL%\' está OFFLINE',
+ 'off_pushover_message' => "Falha ao conectar ao servidor:
+
+
+
\ No newline at end of file
diff --git a/src/templates/default/main/menu.tpl.html b/src/templates/default/main/menu.tpl.html
new file mode 100644
index 00000000..7ffeba0c
--- /dev/null
+++ b/src/templates/default/main/menu.tpl.html
@@ -0,0 +1,22 @@
+
\ No newline at end of file
diff --git a/src/templates/default/module/config/config.tpl.html b/src/templates/default/module/config/config.tpl.html
new file mode 100644
index 00000000..88b223b8
--- /dev/null
+++ b/src/templates/default/module/config/config.tpl.html
@@ -0,0 +1,217 @@
+
\ No newline at end of file
diff --git a/src/templates/default/module/error/401.tpl.html b/src/templates/default/module/error/401.tpl.html
new file mode 100644
index 00000000..0733878d
--- /dev/null
+++ b/src/templates/default/module/error/401.tpl.html
@@ -0,0 +1,2 @@
+
{{ label_title }}
+
{{ label_description }}
\ No newline at end of file
diff --git a/src/templates/default/module/install/config_new.tpl.html b/src/templates/default/module/install/config_new.tpl.html
new file mode 100644
index 00000000..f7bc1712
--- /dev/null
+++ b/src/templates/default/module/install/config_new.tpl.html
@@ -0,0 +1,61 @@
+{% extends "module/install/main.tpl.html" %}
+{% use "module/install/results.tpl.html" %}
+
+{% block install %}
+
+
{{ block('results') }}
+
+
+
+
+
+ {% if include_config_new_copy %}
+
+
Your config file:
+
Unable to save your configuration.
+
Your database information is valid, however we are unable to create the configuration file automatically.
+ Please create a new file in the project directory called "config.php" and copy the information below.
+
After you have copied the configuration, press the button to continue.
+
+
+
+ {% endif %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/src/templates/default/module/install/config_new_user.tpl.html b/src/templates/default/module/install/config_new_user.tpl.html
new file mode 100644
index 00000000..28bddbb1
--- /dev/null
+++ b/src/templates/default/module/install/config_new_user.tpl.html
@@ -0,0 +1,44 @@
+{% extends "module/install/main.tpl.html" %}
+{% use "module/install/results.tpl.html" %}
+
+{% block install %}
+
Sweet, your database connection is up and running!
+
Next, please set up a new account to access your monitor:
+{{ block('results') }}
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/src/templates/default/module/install/config_upgrade.tpl.html b/src/templates/default/module/install/config_upgrade.tpl.html
new file mode 100644
index 00000000..d233b515
--- /dev/null
+++ b/src/templates/default/module/install/config_upgrade.tpl.html
@@ -0,0 +1,9 @@
+{% extends "module/install/main.tpl.html" %}
+
+{% block install %}
+
We have discovered a previous version.
+
In the next step we will upgrade your database to the latest version.
+{% endblock %}
\ No newline at end of file
diff --git a/src/templates/default/module/install/index.tpl.html b/src/templates/default/module/install/index.tpl.html
new file mode 100644
index 00000000..a3edb8e4
--- /dev/null
+++ b/src/templates/default/module/install/index.tpl.html
@@ -0,0 +1,15 @@
+{% extends "module/install/main.tpl.html" %}
+{% use "module/install/results.tpl.html" %}
+
+{% block install %}
+
Welcome to the installation of PHP Server Monitor. This page will guide you through the steps to install or upgrade your monitor.
+
Before we start, we need to verify your system meets the requirements.
+ If you see any errors in the list below, you may still continue, but PHP Server Monitor may not work correctly.
+ It is recommended you fix any errors before continuing.
+
+{% endblock %}
\ No newline at end of file
diff --git a/src/templates/default/module/install/main.tpl.html b/src/templates/default/module/install/main.tpl.html
new file mode 100644
index 00000000..2378f96d
--- /dev/null
+++ b/src/templates/default/module/install/main.tpl.html
@@ -0,0 +1,8 @@
+
+
+
+
PHP Server Monitor
+
+
+ {% block install %} {% endblock %}
+
\ No newline at end of file
diff --git a/src/templates/default/module/install/results.tpl.html b/src/templates/default/module/install/results.tpl.html
new file mode 100644
index 00000000..6a4085b9
--- /dev/null
+++ b/src/templates/default/module/install/results.tpl.html
@@ -0,0 +1,10 @@
+{% block results %}
+{% if messages %}
+ {% for msg in messages %}
+
+
{{ msg.shortcode }}
+
{{ msg.message }}
+
+ {% endfor %}
+{% endif %}
+{% endblock %}
\ No newline at end of file
diff --git a/src/templates/default/module/install/success.tpl.html b/src/templates/default/module/install/success.tpl.html
new file mode 100644
index 00000000..0df73c09
--- /dev/null
+++ b/src/templates/default/module/install/success.tpl.html
@@ -0,0 +1,20 @@
+{% extends "module/install/main.tpl.html" %}
+{% use "module/install/results.tpl.html" %}
+
+{% block install %}
+
+
{{ block('results') }}
+
+
+
+
+
The installation is complete. Please check above if errors have occurred.
+If no errors have occurred, you are good to go.
+{% endblock %}
\ No newline at end of file
diff --git a/src/templates/server/history.tpl.html b/src/templates/default/module/server/history.tpl.html
similarity index 58%
rename from src/templates/server/history.tpl.html
rename to src/templates/default/module/server/history.tpl.html
index a36d00db..7a2aeaab 100644
--- a/src/templates/server/history.tpl.html
+++ b/src/templates/default/module/server/history.tpl.html
@@ -1,4 +1,3 @@
-
@@ -9,19 +8,19 @@
-
+{% for graph in graphs %}
-
+
@@ -29,25 +28,28 @@
-
{label_latency_avg}: {latency_avg}
+ {% for record in graph.info %}
+
{{ record.label }}: {{ record.value }}
+ {% endfor %}
- {label_latency_avg}: {latency_avg}
+
+ {% for record in graph.info %}
+
{{ record.label }}: {{ record.value }}
+ {% endfor %}
+
-
-
-
- {buttons}
+ {% for button in graph.buttons %}
+
+ {% endfor %}
-
-{graphs}
-
-
\ No newline at end of file
+{% endfor %}
+
\ No newline at end of file
diff --git a/src/templates/default/module/server/log.tpl.html b/src/templates/default/module/server/log.tpl.html
new file mode 100644
index 00000000..5ee80bb8
--- /dev/null
+++ b/src/templates/default/module/server/log.tpl.html
@@ -0,0 +1,60 @@
+
\ No newline at end of file
diff --git a/src/templates/default/module/server/server/list.tpl.html b/src/templates/default/module/server/server/list.tpl.html
new file mode 100644
index 00000000..9427ad9f
--- /dev/null
+++ b/src/templates/default/module/server/server/list.tpl.html
@@ -0,0 +1,66 @@
+
\ No newline at end of file
diff --git a/src/templates/default/module/server/server/update.tpl.html b/src/templates/default/module/server/server/update.tpl.html
new file mode 100644
index 00000000..5dcd46d6
--- /dev/null
+++ b/src/templates/default/module/server/server/update.tpl.html
@@ -0,0 +1,106 @@
+
\ No newline at end of file
diff --git a/src/templates/default/module/server/server/view.tpl.html b/src/templates/default/module/server/server/view.tpl.html
new file mode 100644
index 00000000..8b95c7f5
--- /dev/null
+++ b/src/templates/default/module/server/server/view.tpl.html
@@ -0,0 +1,91 @@
+
+{{ html_history|raw }}
\ No newline at end of file
diff --git a/src/templates/default/module/server/status/header.tpl.html b/src/templates/default/module/server/status/header.tpl.html
new file mode 100644
index 00000000..d6455f4a
--- /dev/null
+++ b/src/templates/default/module/server/status/header.tpl.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/templates/default/module/server/status/index.tpl.html b/src/templates/default/module/server/status/index.tpl.html
new file mode 100644
index 00000000..4f579206
--- /dev/null
+++ b/src/templates/default/module/server/status/index.tpl.html
@@ -0,0 +1,60 @@
+
\ No newline at end of file
diff --git a/src/templates/default/module/user/login/forgot.tpl.html b/src/templates/default/module/user/login/forgot.tpl.html
new file mode 100644
index 00000000..5d669239
--- /dev/null
+++ b/src/templates/default/module/user/login/forgot.tpl.html
@@ -0,0 +1,8 @@
+
+
+
\ No newline at end of file
diff --git a/src/templates/default/module/user/login/login.tpl.html b/src/templates/default/module/user/login/login.tpl.html
new file mode 100644
index 00000000..0bf89cd7
--- /dev/null
+++ b/src/templates/default/module/user/login/login.tpl.html
@@ -0,0 +1,13 @@
+
+
+
\ No newline at end of file
diff --git a/src/templates/default/module/user/login/reset.tpl.html b/src/templates/default/module/user/login/reset.tpl.html
new file mode 100644
index 00000000..24151e6e
--- /dev/null
+++ b/src/templates/default/module/user/login/reset.tpl.html
@@ -0,0 +1,10 @@
+
+
+
\ No newline at end of file
diff --git a/src/templates/default/module/user/profile.tpl.html b/src/templates/default/module/user/profile.tpl.html
new file mode 100644
index 00000000..f6c78f99
--- /dev/null
+++ b/src/templates/default/module/user/profile.tpl.html
@@ -0,0 +1,71 @@
+
\ No newline at end of file
diff --git a/src/templates/default/module/user/user/list.tpl.html b/src/templates/default/module/user/user/list.tpl.html
new file mode 100644
index 00000000..7043b358
--- /dev/null
+++ b/src/templates/default/module/user/user/list.tpl.html
@@ -0,0 +1,66 @@
+
\ No newline at end of file
diff --git a/src/templates/default/module/user/user/update.tpl.html b/src/templates/default/module/user/user/update.tpl.html
new file mode 100644
index 00000000..8c587117
--- /dev/null
+++ b/src/templates/default/module/user/user/update.tpl.html
@@ -0,0 +1,82 @@
+
\ No newline at end of file
diff --git a/src/templates/default/util/module/modal.tpl.html b/src/templates/default/util/module/modal.tpl.html
new file mode 100644
index 00000000..56ee6eed
--- /dev/null
+++ b/src/templates/default/util/module/modal.tpl.html
@@ -0,0 +1,14 @@
+
+
+
{{ modal_title }}
+
+
+
{{ modal_body|raw }}
+
+
+
diff --git a/src/templates/default/util/module/sidebar.tpl.html b/src/templates/default/util/module/sidebar.tpl.html
new file mode 100644
index 00000000..0588d8c8
--- /dev/null
+++ b/src/templates/default/util/module/sidebar.tpl.html
@@ -0,0 +1,26 @@
+
\ No newline at end of file
diff --git a/src/templates/install/install.tpl.html b/src/templates/install/install.tpl.html
deleted file mode 100755
index c57e973b..00000000
--- a/src/templates/install/install.tpl.html
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
-
PHP Server Monitor
-
- {html_install}
-
-
-
-
-
Welcome to the installation of PHP Server Monitor. This page will guide you through the steps to install or upgrade your monitor.
-
Before we start, we need to verify your system meets the requirements.
- If you see any errors in the list below, you may still continue, but PHP Server Monitor may not work correctly.
- It is recommended you fix any errors before continuing.
-
Sweet, your database connection is up and running!
-
Next, please set up a new account to access your monitor:
-{html_results}
-
-
-
-
-
-{html_config_copy}
-
-
-
-
-
-
{html_results}
-
-
-
-
-
-{html_config_copy}
-
-
-
-
-
-
Your config file:
-
Unable to save your configuration.
-
Your database information is valid, however we are unable to create the configuration file automatically.
- Please create a new file in the project directory called "config.php" and copy the information below.
-
After you have copied the configuration, press the button to continue.
-
-
-
-
-
-
-
-
{html_results}
-
-
-
-
-
The installation is complete. Please check above if errors have occurred.
-If no errors have occurred, you are good to go.