diff --git a/.github/workflows/phpstan.yaml b/.github/workflows/phpstan.yaml
index 8d90800544..acd89a3dc6 100644
--- a/.github/workflows/phpstan.yaml
+++ b/.github/workflows/phpstan.yaml
@@ -18,7 +18,9 @@ jobs:
php-version: 7.4
- name: Install Dependencies
- run: composer update --ignore-platform-reqs
+ run: |
+ cp core/config/common.config.sample.php core/config/common.config.php
+ composer update --ignore-platform-reqs
- name: Setup PHP 8.2 for PHPStan
uses: shivammathur/setup-php@v2
diff --git a/composer.json b/composer.json
index 25d7fc3830..3f1ca2f1a4 100644
--- a/composer.json
+++ b/composer.json
@@ -15,5 +15,18 @@
"platform": {
"php": "7.4"
}
+ },
+ "autoload": {
+ "classmap": [
+ "core/class/",
+ "core/com/",
+ "core/repo/"
+ ],
+ "files": [
+ "core/config/common.config.php",
+ "core/config/compatibility.config.php",
+ "core/config/jeedom.config.php",
+ "core/php/utils.inc.php"
+ ]
}
}
diff --git a/core/class/translate.class.php b/core/class/translate.class.php
index 50aebb72ef..b84c1178b8 100644
--- a/core/class/translate.class.php
+++ b/core/class/translate.class.php
@@ -215,7 +215,3 @@ public static function setLanguage($_langage) {
/* * *********************Methode d'instance************************* */
}
-
-function __($_content, $_name, $_backslash = false) {
- return translate::sentence(str_replace("\'", "'", $_content), $_name, $_backslash);
-}
diff --git a/core/config/jeedom.config.php b/core/config/jeedom.config.php
index 3699788726..99c6561d98 100644
--- a/core/config/jeedom.config.php
+++ b/core/config/jeedom.config.php
@@ -16,18 +16,53 @@
* along with Jeedom. If not, see .
*/
+/** @internal */
+final class Translation{
+
+ /** @var string */
+ private $key;
+
+ /** @var string */
+ private $file;
+
+ /** @var bool */
+ private $backslash;
+
+ /** @var string */
+ private $prefix;
+
+ /** @var string */
+ private $suffix;
+
+ public function __construct(string $key, string $file, bool $backslash, string $prefix, string $suffix) {
+ $this->key = $key;
+ $this->file = $file;
+ $this->backslash = $backslash;
+ $this->prefix = $prefix;
+ $this->suffix = $suffix;
+ }
+
+ public function __toString(): string {
+ return $this->prefix.\translate::sentence(str_replace("\'", "'", $this->key), $this->file, $this->backslash).$this->suffix;
+ }
+}
+
+function t(string $key, string $prefix = '', string $suffix = ''): Translation {
+ return new Translation($key, __FILE__, false, $prefix, $suffix);
+}
+
global $JEEDOM_INTERNAL_CONFIG;
$JEEDOM_INTERNAL_CONFIG = array(
'eqLogic' => array(
'category' => array(
- 'heating' => array('name' => __('Chauffage', __FILE__), 'icon' => 'fas fa-fire'),
- 'security' => array('name' => __('Sécurité', __FILE__), 'icon' => 'fas fa-lock'),
- 'energy' => array('name' => __('Energie', __FILE__), 'icon' => 'fas fa-bolt'),
- 'light' => array('name' => __('Lumière', __FILE__), 'icon' => 'far fa-lightbulb'),
- 'opening' => array('name' => __('Ouvrant', __FILE__), 'icon' => 'fas fa-door-open'),
- 'automatism' => array('name' => __('Automatisme', __FILE__), 'icon' => 'fas fa-magic'),
- 'multimedia' => array('name' => __('Multimédia', __FILE__), 'icon' => 'fas fa-sliders-h'),
- 'default' => array('name' => __('Autre', __FILE__), 'icon' => 'far fa-circle'),
+ 'heating' => array('name' => t('Chauffage'), 'icon' => 'fas fa-fire'),
+ 'security' => array('name' => t('Sécurité'), 'icon' => 'fas fa-lock'),
+ 'energy' => array('name' => t('Energie'), 'icon' => 'fas fa-bolt'),
+ 'light' => array('name' => t('Lumière'), 'icon' => 'far fa-lightbulb'),
+ 'opening' => array('name' => t('Ouvrant'), 'icon' => 'fas fa-door-open'),
+ 'automatism' => array('name' => t('Automatisme'), 'icon' => 'fas fa-magic'),
+ 'multimedia' => array('name' => t('Multimédia'), 'icon' => 'fas fa-sliders-h'),
+ 'default' => array('name' => t('Autre'), 'icon' => 'far fa-circle'),
),
'displayType' => array(
'dashboard' => array('name' => 'Dashboard'),
@@ -44,34 +79,34 @@
),
'plugin' => array(
'category' => array(
- 'security' => array('name' => __('Sécurité', __FILE__), 'icon' => 'fas fa-lock'),
- 'automation protocol' => array('name' => __('Protocole domotique', __FILE__), 'icon' => 'fas fa-rss'),
- 'home automation protocol' => array('name' => __('Passerelle domotique', __FILE__), 'icon' => 'fas fa-asterisk'),
- 'programming' => array('name' => __('Programmation', __FILE__), 'icon' => 'fas fa-code'),
- 'organization' => array('name' => __('Organisation', __FILE__), 'icon' => 'far fa-calendar-alt', 'alias' => array('travel', 'finance')),
- 'weather' => array('name' => __('Météo', __FILE__), 'icon' => 'far fa-sun'),
- 'communication' => array('name' => __('Communication', __FILE__), 'icon' => 'fas fa-comment'),
- 'devicecommunication' => array('name' => __('Objets connectés', __FILE__), 'icon' => 'fas fa-language'),
- 'multimedia' => array('name' => __('Multimédia', __FILE__), 'icon' => 'fas fa-sliders-h'),
- 'wellness' => array('name' => __('Confort', __FILE__), 'icon' => 'far fa-user'),
- 'monitoring' => array('name' => __('Monitoring', __FILE__), 'icon' => 'fas fa-tachometer-alt'),
- 'health' => array('name' => __('Santé', __FILE__), 'icon' => 'icon loisir-runner5'),
- 'nature' => array('name' => __('Nature', __FILE__), 'icon' => 'icon nature-leaf32'),
- 'automatisation' => array('name' => __('Automatisme', __FILE__), 'icon' => 'fas fa-magic'),
- 'energy' => array('name' => __('Energie', __FILE__), 'icon' => 'fas fa-bolt'),
- 'other' => array('name' => __('Autre', __FILE__), 'icon' => 'fas fa-bars'),
+ 'security' => array('name' => t('Sécurité'), 'icon' => 'fas fa-lock'),
+ 'automation protocol' => array('name' => t('Protocole domotique'), 'icon' => 'fas fa-rss'),
+ 'home automation protocol' => array('name' => t('Passerelle domotique'), 'icon' => 'fas fa-asterisk'),
+ 'programming' => array('name' => t('Programmation'), 'icon' => 'fas fa-code'),
+ 'organization' => array('name' => t('Organisation'), 'icon' => 'far fa-calendar-alt', 'alias' => array('travel', 'finance')),
+ 'weather' => array('name' => t('Météo'), 'icon' => 'far fa-sun'),
+ 'communication' => array('name' => t('Communication'), 'icon' => 'fas fa-comment'),
+ 'devicecommunication' => array('name' => t('Objets connectés'), 'icon' => 'fas fa-language'),
+ 'multimedia' => array('name' => t('Multimédia'), 'icon' => 'fas fa-sliders-h'),
+ 'wellness' => array('name' => t('Confort'), 'icon' => 'far fa-user'),
+ 'monitoring' => array('name' => t('Monitoring'), 'icon' => 'fas fa-tachometer-alt'),
+ 'health' => array('name' => t('Santé'), 'icon' => 'icon loisir-runner5'),
+ 'nature' => array('name' => t('Nature'), 'icon' => 'icon nature-leaf32'),
+ 'automatisation' => array('name' => t('Automatisme'), 'icon' => 'fas fa-magic'),
+ 'energy' => array('name' => t('Energie'), 'icon' => 'fas fa-bolt'),
+ 'other' => array('name' => t('Autre'), 'icon' => 'fas fa-bars'),
),
),
'messageChannel' => array(
- 'alerting' => array('name' => __('Alerte des commandes', __FILE__), 'icon' => ''),
- 'alertingReturnBack' => array('name' => __('Retour à l\'état normal des commandes', __FILE__), 'icon' => '')
+ 'alerting' => array('name' => t('Alerte des commandes'), 'icon' => ''),
+ 'alertingReturnBack' => array('name' => t('Retour à l\'état normal des commandes'), 'icon' => '')
),
'alerts' => array(
- 'timeout' => array('name' => __('Timeout', __FILE__), 'icon' => 'far fa-clock', 'level' => 6, 'check' => false, 'color' => 'var(--al-danger-color)'),
- 'batterywarning' => array('name' => __('Batterie en Warning', __FILE__), 'icon' => 'fas fa-battery-quarter', 'level' => 2, 'check' => false, 'color' => 'var(--al-warning-color)'),
- 'batterydanger' => array('name' => __('Batterie en Danger', __FILE__), 'icon' => 'fas fa-battery-empty', 'level' => 3, 'check' => false, 'color' => 'var(--al-danger-color)'),
- 'warning' => array('name' => __('Warning', __FILE__), 'icon' => 'fas fa-bell', 'level' => 4, 'check' => true, 'color' => 'var(--al-warning-color)'),
- 'danger' => array('name' => __('Danger', __FILE__), 'icon' => 'fas fa-exclamation', 'level' => 5, 'check' => true, 'color' => 'var(--al-danger-color)'),
+ 'timeout' => array('name' => t('Timeout'), 'icon' => 'far fa-clock', 'level' => 6, 'check' => false, 'color' => 'var(--al-danger-color)'),
+ 'batterywarning' => array('name' => t('Batterie en Warning'), 'icon' => 'fas fa-battery-quarter', 'level' => 2, 'check' => false, 'color' => 'var(--al-warning-color)'),
+ 'batterydanger' => array('name' => t('Batterie en Danger'), 'icon' => 'fas fa-battery-empty', 'level' => 3, 'check' => false, 'color' => 'var(--al-danger-color)'),
+ 'warning' => array('name' => t('Warning'), 'icon' => 'fas fa-bell', 'level' => 4, 'check' => true, 'color' => 'var(--al-warning-color)'),
+ 'danger' => array('name' => t('Danger'), 'icon' => 'fas fa-exclamation', 'level' => 5, 'check' => true, 'color' => 'var(--al-danger-color)'),
),
'cmd' => array(
'widgets' => array(
@@ -168,700 +203,700 @@
),
'generic_type' => array(
'TOGGLE' => array(
- 'name' => __('Toggle', __FILE__), 'familyid' => 'Other', 'family' => __('Autre', __FILE__),
+ 'name' => t('Toggle'), 'familyid' => 'Other', 'family' => t('Autre'),
'type' => 'Action', 'subtype' => array('other')
),
'ONLINE' => array(
- 'name' => __('Connecté', __FILE__), 'familyid' => 'Other', 'family' => __('Autre', __FILE__),
+ 'name' => t('Connecté'), 'familyid' => 'Other', 'family' => t('Autre'),
'type' => 'Info', 'subtype' => array('binary')
),
'LIGHT_TOGGLE' => array(
- 'name' => __('Lumière Toggle', __FILE__), 'familyid' => 'Light', 'family' => __('Lumière', __FILE__),
+ 'name' => t('Lumière Toggle'), 'familyid' => 'Light', 'family' => t('Lumière'),
'type' => 'Action', 'subtype' => array('other')
),
'LIGHT_STATE' => array(
- 'name' => __('Lumière Etat', __FILE__), 'familyid' => 'Light', 'family' => __('Lumière', __FILE__),
+ 'name' => t('Lumière Etat'), 'familyid' => 'Light', 'family' => t('Lumière'),
'type' => 'Info', 'subtype' => array('binary', 'numeric')
),
'LIGHT_ON' => array(
- 'name' => __('Lumière Bouton On', __FILE__), 'familyid' => 'Light', 'family' => __('Lumière', __FILE__),
+ 'name' => t('Lumière Bouton On'), 'familyid' => 'Light', 'family' => t('Lumière'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'LIGHT_OFF' => array(
- 'name' => __('Lumière Bouton Off', __FILE__), 'familyid' => 'Light', 'family' => __('Lumière', __FILE__),
+ 'name' => t('Lumière Bouton Off'), 'familyid' => 'Light', 'family' => t('Lumière'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'LIGHT_SLIDER' => array(
- 'name' => __('Lumière Slider', __FILE__), 'familyid' => 'Light', 'family' => __('Lumière', __FILE__),
+ 'name' => t('Lumière Slider'), 'familyid' => 'Light', 'family' => t('Lumière'),
'type' => 'Action', 'summary' => array('subtype' => 'slider'), 'subtype' => array('slider')
),
'LIGHT_BRIGHTNESS' => array(
- 'name' => __('Lumière Luminosité', __FILE__), 'familyid' => 'Light', 'family' => __('Lumière', __FILE__),
+ 'name' => t('Lumière Luminosité'), 'familyid' => 'Light', 'family' => t('Lumière'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'LIGHT_COLOR' => array(
- 'name' => __('Lumière Couleur', __FILE__), 'familyid' => 'Light', 'family' => __('Lumière', __FILE__),
+ 'name' => t('Lumière Couleur'), 'familyid' => 'Light', 'family' => t('Lumière'),
'type' => 'Info', 'subtype' => array('string')
),
'LIGHT_SET_COLOR' => array(
- 'name' => __('Lumière Couleur', __FILE__), 'familyid' => 'Light', 'family' => __('Lumière', __FILE__),
+ 'name' => t('Lumière Couleur'), 'familyid' => 'Light', 'family' => t('Lumière'),
'type' => 'Action', 'summary' => array('subtype' => 'color'), 'subtype' => array('color')
),
'LIGHT_MODE' => array(
- 'name' => __('Lumière Mode', __FILE__), 'familyid' => 'Light', 'family' => __('Lumière', __FILE__),
+ 'name' => t('Lumière Mode'), 'familyid' => 'Light', 'family' => t('Lumière'),
'type' => 'Action', 'subtype' => array('other','select')
),
'LIGHT_STATE_BOOL' => array(
- 'name' => __('Lumière Etat (Binaire)', __FILE__), 'familyid' => 'Light', 'family' => __('Lumière', __FILE__),
+ 'name' => t('Lumière Etat (Binaire)'), 'familyid' => 'Light', 'family' => t('Lumière'),
'type' => 'Info', 'subtype' => array('binary')
),
'LIGHT_COLOR_TEMP' => array(
- 'name' => __('Lumière Température Couleur', __FILE__), 'familyid' => 'Light', 'family' => __('Lumière', __FILE__),
+ 'name' => t('Lumière Température Couleur'), 'familyid' => 'Light', 'family' => t('Lumière'),
'type' => 'Info', 'subtype' => array('numeric')
),
'LIGHT_SET_COLOR_TEMP' => array(
- 'name' => __('Lumière Température Couleur', __FILE__), 'familyid' => 'Light', 'family' => __('Lumière', __FILE__),
+ 'name' => t('Lumière Température Couleur'), 'familyid' => 'Light', 'family' => t('Lumière'),
'type' => 'Action'
),
'ENERGY_STATE' => array(
- 'name' => __('Prise Etat', __FILE__), 'familyid' => 'Outlet', 'family' => __('Prise', __FILE__),
+ 'name' => t('Prise Etat'), 'familyid' => 'Outlet', 'family' => t('Prise'),
'type' => 'Info', 'subtype' => array('numeric', 'binary')
),
'ENERGY_ON' => array(
- 'name' => __('Prise Bouton On', __FILE__), 'familyid' => 'Outlet', 'family' => __('Prise', __FILE__),
+ 'name' => t('Prise Bouton On'), 'familyid' => 'Outlet', 'family' => t('Prise'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'ENERGY_OFF' => array(
- 'name' => __('Prise Bouton Off', __FILE__), 'familyid' => 'Outlet', 'family' => __('Prise', __FILE__),
+ 'name' => t('Prise Bouton Off'), 'familyid' => 'Outlet', 'family' => t('Prise'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'ENERGY_SLIDER' => array(
- 'name' => __('Prise Slider', __FILE__), 'familyid' => 'Outlet', 'family' => __('Prise', __FILE__),
+ 'name' => t('Prise Slider'), 'familyid' => 'Outlet', 'family' => t('Prise'),
'type' => 'Action', 'summary' => array('subtype' => 'slider')
),
'FLAP_STATE' => array(
- 'name' => __('Volet Etat', __FILE__), 'familyid' => 'Shutter', 'family' => __('Volet', __FILE__),
+ 'name' => t('Volet Etat'), 'familyid' => 'Shutter', 'family' => t('Volet'),
'type' => 'Info', 'subtype' => array('binary', 'numeric')
),
'FLAP_UP' => array(
- 'name' => __('Volet Bouton Monter', __FILE__), 'familyid' => 'Shutter', 'family' => __('Volet', __FILE__),
+ 'name' => t('Volet Bouton Monter'), 'familyid' => 'Shutter', 'family' => t('Volet'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'FLAP_DOWN' => array(
- 'name' => __('Volet Bouton Descendre', __FILE__), 'familyid' => 'Shutter', 'family' => __('Volet', __FILE__),
+ 'name' => t('Volet Bouton Descendre'), 'familyid' => 'Shutter', 'family' => t('Volet'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'FLAP_STOP' => array(
- 'name' => __('Volet Bouton Stop', __FILE__), 'familyid' => 'Shutter', 'family' => __('Volet', __FILE__),
+ 'name' => t('Volet Bouton Stop'), 'familyid' => 'Shutter', 'family' => t('Volet'),
'type' => 'Action'
),
'FLAP_SLIDER' => array(
- 'name' => __('Volet Bouton Slider', __FILE__), 'familyid' => 'Shutter', 'family' => __('Volet', __FILE__),
+ 'name' => t('Volet Bouton Slider'), 'familyid' => 'Shutter', 'family' => t('Volet'),
'type' => 'Action', 'summary' => array('subtype' => 'slider'), 'subtype' => array('slider')
),
'FLAP_BSO_STATE' => array(
- 'name' => __('Volet BSO Etat', __FILE__), 'familyid' => 'Shutter', 'family' => __('Volet', __FILE__),
+ 'name' => t('Volet BSO Etat'), 'familyid' => 'Shutter', 'family' => t('Volet'),
'type' => 'Info', 'subtype' => array('binary', 'numeric')
),
'FLAP_BSO_UP' => array(
- 'name' => __('Volet BSO Bouton Monter', __FILE__), 'familyid' => 'Shutter', 'family' => __('Volet', __FILE__),
+ 'name' => t('Volet BSO Bouton Monter'), 'familyid' => 'Shutter', 'family' => t('Volet'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'FLAP_BSO_DOWN' => array(
- 'name' => __('Volet BSO Bouton Descendre', __FILE__), 'familyid' => 'Shutter', 'family' => __('Volet', __FILE__),
+ 'name' => t('Volet BSO Bouton Descendre'), 'familyid' => 'Shutter', 'family' => t('Volet'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'HEATING_ON' => array(
- 'name' => __('Chauffage fil pilote Bouton ON', __FILE__), 'familyid' => 'Heating', 'family' => __('Chauffage', __FILE__),
+ 'name' => t('Chauffage fil pilote Bouton ON'), 'familyid' => 'Heating', 'family' => t('Chauffage'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'HEATING_OFF' => array(
- 'name' => __('Chauffage fil pilote Bouton OFF', __FILE__), 'familyid' => 'Heating', 'family' => __('Chauffage', __FILE__),
+ 'name' => t('Chauffage fil pilote Bouton OFF'), 'familyid' => 'Heating', 'family' => t('Chauffage'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'HEATING_STATE' => array(
- 'name' => __('Chauffage fil pilote Etat', __FILE__), 'familyid' => 'Heating', 'family' => __('Chauffage', __FILE__),
+ 'name' => t('Chauffage fil pilote Etat'), 'familyid' => 'Heating', 'family' => t('Chauffage'),
'type' => 'Info', 'subtype' => array('binary', 'numeric')
),
'HEATING_OTHER' => array(
- 'name' => __('Chauffage fil pilote Bouton', __FILE__), 'familyid' => 'Heating', 'family' => __('Chauffage', __FILE__),
+ 'name' => t('Chauffage fil pilote Bouton'), 'familyid' => 'Heating', 'family' => t('Chauffage'),
'type' => 'Action', 'subtype' => array('other')
),
'LOCK_STATE' => array(
- 'name' => __('Serrure Etat', __FILE__), 'familyid' => 'Opening', 'family' => __('Ouvrant', __FILE__),
+ 'name' => t('Serrure Etat'), 'familyid' => 'Opening', 'family' => t('Ouvrant'),
'type' => 'Info', 'subtype' => array('binary')
),
'LOCK_OPEN' => array(
- 'name' => __('Serrure Bouton Ouvrir', __FILE__), 'familyid' => 'Opening', 'family' => __('Ouvrant', __FILE__),
+ 'name' => t('Serrure Bouton Ouvrir'), 'familyid' => 'Opening', 'family' => t('Ouvrant'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'LOCK_CLOSE' => array(
- 'name' => __('Serrure Bouton Fermer', __FILE__), 'familyid' => 'Opening', 'family' => __('Ouvrant', __FILE__),
+ 'name' => t('Serrure Bouton Fermer'), 'familyid' => 'Opening', 'family' => t('Ouvrant'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'GB_OPEN' => array(
- 'name' => __('Portail ou garage bouton d\'ouverture', __FILE__), 'familyid' => 'Opening', 'family' => __('Ouvrant', __FILE__),
+ 'name' => t('Portail ou garage bouton d\'ouverture'), 'familyid' => 'Opening', 'family' => t('Ouvrant'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'GB_CLOSE' => array(
- 'name' => __('Portail ou garage bouton de fermeture', __FILE__), 'familyid' => 'Opening', 'family' => __('Ouvrant', __FILE__),
+ 'name' => t('Portail ou garage bouton de fermeture'), 'familyid' => 'Opening', 'family' => t('Ouvrant'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'GB_TOGGLE' => array(
- 'name' => __('Portail ou garage bouton toggle', __FILE__), 'familyid' => 'Opening', 'family' => __('Ouvrant', __FILE__),
+ 'name' => t('Portail ou garage bouton toggle'), 'familyid' => 'Opening', 'family' => t('Ouvrant'),
'type' => 'Action', 'subtype' => array('other')
),
'BARRIER_STATE' => array(
- 'name' => __('Portail (ouvrant) Etat', __FILE__), 'familyid' => 'Opening', 'family' => __('Ouvrant', __FILE__),
+ 'name' => t('Portail (ouvrant) Etat'), 'familyid' => 'Opening', 'family' => t('Ouvrant'),
'type' => 'Info', 'subtype' => array('binary')
),
'GARAGE_STATE' => array(
- 'name' => __('Garage (ouvrant) Etat', __FILE__), 'familyid' => 'Opening', 'family' => __('Ouvrant', __FILE__),
+ 'name' => t('Garage (ouvrant) Etat'), 'familyid' => 'Opening', 'family' => t('Ouvrant'),
'type' => 'Info', 'subtype' => array('binary')
),
'OPENING' => array(
- 'name' => __('Porte', __FILE__), 'familyid' => 'Opening', 'family' => __('Ouvrant', __FILE__),
+ 'name' => t('Porte'), 'familyid' => 'Opening', 'family' => t('Ouvrant'),
'type' => 'Info', 'subtype' => array('binary')
),
'OPENING_WINDOW' => array(
- 'name' => __('Fenêtre', __FILE__), 'familyid' => 'Opening', 'family' => __('Ouvrant', __FILE__),
+ 'name' => t('Fenêtre'), 'familyid' => 'Opening', 'family' => t('Ouvrant'),
'type' => 'Info', 'subtype' => array('binary')
),
'THERMOSTAT_STATE' => array(
- 'name' => __('Thermostat Etat', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat Etat'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Info', 'subtype' => array('binary')
),
'THERMOSTAT_TEMPERATURE' => array(
- 'name' => __('Thermostat Température ambiante', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat Température ambiante'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'THERMOSTAT_SET_SETPOINT' => array(
- 'name' => __('Thermostat consigne', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat consigne'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Action', 'subtype' => array('slider')
),
'THERMOSTAT_SETPOINT' => array(
- 'name' => __('Thermostat consigne', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat consigne'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'THERMOSTAT_SET_MODE' => array(
- 'name' => __('Thermostat Mode', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat Mode'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Action', 'subtype' => array('other','select')
),
'THERMOSTAT_MODE' => array(
- 'name' => __('Thermostat Mode', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat Mode'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Info', 'subtype' => array('string')
),
'THERMOSTAT_SET_LOCK' => array(
- 'name' => __('Thermostat Verrouillage', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat Verrouillage'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Action', 'subtype' => array('other')
),
'THERMOSTAT_SET_UNLOCK' => array(
- 'name' => __('Thermostat Déverrouillage', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat Déverrouillage'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Action', 'subtype' => array('other')
),
'THERMOSTAT_LOCK' => array(
- 'name' => __('Thermostat Verrouillage', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat Verrouillage'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Info', 'subtype' => array('binary')
),
'THERMOSTAT_TEMPERATURE_OUTDOOR' => array(
- 'name' => __('Thermostat Température Exterieur', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat Température Exterieur'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'THERMOSTAT_STATE_NAME' => array(
- 'name' => __('Thermostat Etat (HUMAIN)', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat Etat (HUMAIN)'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Info', 'subtype' => array('string')
),
'THERMOSTAT_HUMIDITY' => array(
- 'name' => __('Thermostat humidité ambiante', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat humidité ambiante'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'THERMOSTAT_SET_MAX_TEMP' => array(
- 'name' => __('Thermostat maximum consigne', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat maximum consigne'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Action', 'subtype' => array('slider')
),
'THERMOSTAT_SET_MIN_TEMP' => array(
- 'name' => __('Thermostat minimum consigne', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat minimum consigne'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Action', 'subtype' => array('slider')
),
'THERMOSTAT_HUMIDITY' => array(
- 'name' => __('Thermostat humidité ambiante', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Thermostat humidité ambiante'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'HUMIDITY_SETPOINT' => array(
- 'name' => __('Humidité consigne', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Humidité consigne'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Info', 'subtype' => array('slider')
),
'HUMIDITY_SET_SETPOINT' => array(
- 'name' => __('Humidité consigne', __FILE__), 'familyid' => 'Thermostat', 'family' => __('Thermostat', __FILE__),
+ 'name' => t('Humidité consigne'), 'familyid' => 'Thermostat', 'family' => t('Thermostat'),
'type' => 'Action', 'subtype' => array('slider')
),
'CAMERA_UP' => array(
- 'name' => __('Mouvement caméra vers le haut', __FILE__), 'familyid' => 'Camera', 'family' => __('Caméra', __FILE__),
+ 'name' => t('Mouvement caméra vers le haut'), 'familyid' => 'Camera', 'family' => t('Caméra'),
'type' => 'Action', 'subtype' => array('other')
),
'CAMERA_DOWN' => array(
- 'name' => __('Mouvement caméra vers le bas', __FILE__), 'familyid' => 'Camera', 'family' => __('Caméra', __FILE__),
+ 'name' => t('Mouvement caméra vers le bas'), 'familyid' => 'Camera', 'family' => t('Caméra'),
'type' => 'Action', 'subtype' => array('other')
),
'CAMERA_LEFT' => array(
- 'name' => __('Mouvement caméra vers la gauche', __FILE__), 'familyid' => 'Camera', 'family' => __('Caméra', __FILE__),
+ 'name' => t('Mouvement caméra vers la gauche'), 'familyid' => 'Camera', 'family' => t('Caméra'),
'type' => 'Action', 'subtype' => array('other')
),
'CAMERA_RIGHT' => array(
- 'name' => __('Mouvement caméra vers la droite', __FILE__), 'familyid' => 'Camera', 'family' => __('Caméra', __FILE__),
+ 'name' => t('Mouvement caméra vers la droite'), 'familyid' => 'Camera', 'family' => t('Caméra'),
'type' => 'Action', 'subtype' => array('other')
),
'CAMERA_ZOOM' => array(
- 'name' => __('Zoom caméra vers l\'avant', __FILE__), 'familyid' => 'Camera', 'family' => __('Caméra', __FILE__),
+ 'name' => t('Zoom caméra vers l\'avant'), 'familyid' => 'Camera', 'family' => t('Caméra'),
'type' => 'Action', 'subtype' => array('other')
),
'CAMERA_DEZOOM' => array(
- 'name' => __('Zoom caméra vers l\'arrière', __FILE__), 'familyid' => 'Camera', 'family' => __('Caméra', __FILE__),
+ 'name' => t('Zoom caméra vers l\'arrière'), 'familyid' => 'Camera', 'family' => t('Caméra'),
'type' => 'Action', 'subtype' => array('other')
),
'CAMERA_STOP' => array(
- 'name' => __('Stop caméra', __FILE__), 'familyid' => 'Camera', 'family' => __('Caméra', __FILE__),
+ 'name' => t('Stop caméra'), 'familyid' => 'Camera', 'family' => t('Caméra'),
'type' => 'Action', 'subtype' => array('other')
),
'CAMERA_PRESET' => array(
- 'name' => __('Preset caméra', __FILE__), 'familyid' => 'Camera', 'family' => __('Caméra', __FILE__),
+ 'name' => t('Preset caméra'), 'familyid' => 'Camera', 'family' => t('Caméra'),
'type' => 'Action', 'subtype' => array('other')
),
'CAMERA_URL' => array(
- 'name' => __('URL caméra', __FILE__), 'familyid' => 'Camera', 'family' => __('Caméra', __FILE__),
+ 'name' => t('URL caméra'), 'familyid' => 'Camera', 'family' => t('Caméra'),
'type' => 'Info', 'subtype' => array('string')
),
'CAMERA_RECORD_STATE' => array(
- 'name' => __('État enregistrement caméra', __FILE__), 'familyid' => 'Camera', 'family' => __('Caméra', __FILE__),
+ 'name' => t('État enregistrement caméra'), 'familyid' => 'Camera', 'family' => t('Caméra'),
'type' => 'Info', 'subtype' => array('binary')
),
'CAMERA_RECORD' => array(
- 'name' => __('Enregistrement caméra', __FILE__), 'familyid' => 'Camera', 'family' => __('Caméra', __FILE__),
+ 'name' => t('Enregistrement caméra'), 'familyid' => 'Camera', 'family' => t('Caméra'),
'type' => 'Action'
),
'CAMERA_TAKE' => array(
- 'name' => __('Snapshot caméra', __FILE__), 'familyid' => 'Camera', 'family' => __('Caméra', __FILE__),
+ 'name' => t('Snapshot caméra'), 'familyid' => 'Camera', 'family' => t('Caméra'),
'type' => 'Action'
),
'MODE_STATE' => array(
- 'name' => __('Mode Etat', __FILE__), 'familyid' => 'Mode', 'family' => __('Mode', __FILE__),
+ 'name' => t('Mode Etat'), 'familyid' => 'Mode', 'family' => t('Mode'),
'type' => 'Info', 'subtype' => array('string')
),
'MODE_SET_STATE' => array(
- 'name' => __('Changer Mode', __FILE__), 'familyid' => 'Mode', 'family' => __('Mode', __FILE__),
+ 'name' => t('Changer Mode'), 'familyid' => 'Mode', 'family' => t('Mode'),
'type' => 'Action', 'subtype' => array('other','select')
),
'SIREN_STATE' => array(
- 'name' => __('Sirène Etat', __FILE__), 'familyid' => 'Security', 'family' => __('Sécurité', __FILE__),
+ 'name' => t('Sirène Etat'), 'familyid' => 'Security', 'family' => t('Sécurité'),
'type' => 'Info', 'subtype' => array('binary')
),
'SIREN_OFF' => array(
- 'name' => __('Sirène Bouton Off', __FILE__), 'familyid' => 'Security', 'family' => __('Sécurité', __FILE__),
+ 'name' => t('Sirène Bouton Off'), 'familyid' => 'Security', 'family' => t('Sécurité'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'SIREN_ON' => array(
- 'name' => __('Sirène Bouton On', __FILE__), 'familyid' => 'Security', 'family' => __('Sécurité', __FILE__),
+ 'name' => t('Sirène Bouton On'), 'familyid' => 'Security', 'family' => t('Sécurité'),
'type' => 'Action', 'summary' => array('subtype' => 'other'), 'subtype' => array('other')
),
'ALARM_STATE' => array(
- 'name' => __('Alarme Etat', __FILE__), 'familyid' => 'Security', 'family' => __('Sécurité', __FILE__),
+ 'name' => t('Alarme Etat'), 'familyid' => 'Security', 'family' => t('Sécurité'),
'type' => 'Info', 'subtype' => array('binary', 'string')
),
'ALARM_MODE' => array(
- 'name' => __('Alarme mode', __FILE__), 'familyid' => 'Security', 'family' => __('Sécurité', __FILE__),
+ 'name' => t('Alarme mode'), 'familyid' => 'Security', 'family' => t('Sécurité'),
'type' => 'Info', 'subtype' => array('string')
),
'ALARM_ENABLE_STATE' => array(
- 'name' => __('Alarme Etat activée', __FILE__), 'familyid' => 'Security', 'family' => __('Sécurité', __FILE__),
+ 'name' => t('Alarme Etat activée'), 'familyid' => 'Security', 'family' => t('Sécurité'),
'type' => 'Info', 'subtype' => array('binary')
),
'ALARM_ARMED' => array(
- 'name' => __('Alarme armée', __FILE__), 'familyid' => 'Security', 'family' => __('Sécurité', __FILE__),
+ 'name' => t('Alarme armée'), 'familyid' => 'Security', 'family' => t('Sécurité'),
'type' => 'Action', 'subtype' => array('other')
),
'ALARM_RELEASED' => array(
- 'name' => __('Alarme libérée', __FILE__), 'familyid' => 'Security', 'family' => __('Sécurité', __FILE__),
+ 'name' => t('Alarme libérée'), 'familyid' => 'Security', 'family' => t('Sécurité'),
'type' => 'Action', 'subtype' => array('other')
),
'ALARM_SET_MODE' => array(
- 'name' => __('Alarme Mode', __FILE__), 'familyid' => 'Security', 'family' => __('Sécurité', __FILE__),
+ 'name' => t('Alarme Mode'), 'familyid' => 'Security', 'family' => t('Sécurité'),
'type' => 'Action', 'subtype' => array('other','select')
),
'FLOOD' => array(
- 'name' => __('Inondation', __FILE__), 'familyid' => 'Security', 'family' => __('Sécurité', __FILE__),
+ 'name' => t('Inondation'), 'familyid' => 'Security', 'family' => t('Sécurité'),
'type' => 'Info', 'subtype' => array('binary')
),
'SABOTAGE' => array(
- 'name' => __('Sabotage', __FILE__), 'familyid' => 'Security', 'family' => __('Sécurité', __FILE__),
+ 'name' => t('Sabotage'), 'familyid' => 'Security', 'family' => t('Sécurité'),
'type' => 'Info', 'subtype' => array('binary')
),
'SHOCK' => array(
- 'name' => __('Choc', __FILE__), 'familyid' => 'Security', 'family' => __('Sécurité', __FILE__),
+ 'name' => t('Choc'), 'familyid' => 'Security', 'family' => t('Sécurité'),
'type' => 'Info', 'subtype' => array('binary', 'numeric')
),
'WEATHER_TEMPERATURE' => array(
- 'name' => __('Météo Température', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo Température'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_HUMIDITY' => array(
- 'name' => __('Météo Humidité', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo Humidité'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_PRESSURE' => array(
- 'name' => __('Météo Pression', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo Pression'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_WIND_SPEED' => array(
- 'name' => __('Météo vitesse du vent', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo vitesse du vent'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_WIND_DIRECTION' => array(
- 'name' => __('Météo direction du vent', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo direction du vent'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_SUNSET' => array(
- 'name' => __('Météo coucher de soleil', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo coucher de soleil'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_SUNRISE' => array(
- 'name' => __('Météo lever de soleil', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo lever de soleil'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_TEMPERATURE_MIN' => array(
- 'name' => __('Météo Température min', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo Température min'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_TEMPERATURE_MAX' => array(
- 'name' => __('Météo Température max', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo Température max'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_CONDITION' => array(
- 'name' => __('Météo condition', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo condition'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('string')
),
'WEATHER_CONDITION_ID' => array(
- 'name' => __('Météo condition (id)', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo condition (id)'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'text'
),
'WEATHER_TEMPERATURE_MIN_1' => array(
- 'name' => __('Météo Température min j+1', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo Température min j+1'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_TEMPERATURE_MAX_1' => array(
- 'name' => __('Météo Température max j+1', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo Température max j+1'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_CONDITION_1' => array(
- 'name' => __('Météo condition j+1', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo condition j+1'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('string'), 'calcul' => 'text'
),
'WEATHER_CONDITION_ID_1' => array(
- 'name' => __('Météo condition (id) j+1', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo condition (id) j+1'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'text'
),
'WEATHER_TEMPERATURE_MIN_2' => array(
- 'name' => __('Météo Température min j+2', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo Température min j+2'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_TEMPERATURE_MAX_2' => array(
- 'name' => __('Météo condition j+1 max j+2', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo condition j+1 max j+2'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_CONDITION_2' => array(
- 'name' => __('Météo condition j+2', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo condition j+2'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('string'), 'calcul' => 'text'
),
'WEATHER_CONDITION_ID_2' => array(
- 'name' => __('Météo condition (id) j+2', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo condition (id) j+2'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'text'
),
'WEATHER_TEMPERATURE_MIN_3' => array(
- 'name' => __('Météo Température min j+3', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo Température min j+3'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_TEMPERATURE_MAX_3' => array(
- 'name' => __('Météo Température max j+3', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo Température max j+3'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_CONDITION_3' => array(
- 'name' => __('Météo condition j+3', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo condition j+3'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('string'), 'calcul' => 'text'
),
'WEATHER_CONDITION_ID_3' => array(
- 'name' => __('Météo condition (id) j+3', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo condition (id) j+3'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'text'
),
'WEATHER_TEMPERATURE_MIN_4' => array(
- 'name' => __('Météo Température min j+4', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo Température min j+4'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_TEMPERATURE_MAX_4' => array(
- 'name' => __('Météo Température max j+4', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo Température max j+4'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WEATHER_CONDITION_4' => array(
- 'name' => __('Météo condition j+4', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo condition j+4'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('string'), 'calcul' => 'text'
),
'WEATHER_CONDITION_ID_4' => array(
- 'name' => __('Météo condition (id) j+4', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Météo condition (id) j+4'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'text'
),
'RAIN_CURRENT' => array(
- 'name' => __('Pluie (mm/h)', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Pluie (mm/h)'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'RAIN_TOTAL' => array(
- 'name' => __('Pluie (accumulation)', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Pluie (accumulation)'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WIND_SPEED' => array(
- 'name' => __('Vent (vitesse)', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Vent (vitesse)'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WIND_DIRECTION' => array(
- 'name' => __('Vent (direction)', __FILE__), 'familyid' => 'Weather', 'family' => __('Météo', __FILE__),
+ 'name' => t('Vent (direction)'), 'familyid' => 'Weather', 'family' => t('Météo'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'POWER' => array(
- 'name' => __('Puissance Electrique', __FILE__), 'familyid' => 'Electricity', 'family' => __('Electricité', __FILE__),
+ 'name' => t('Puissance Electrique'), 'familyid' => 'Electricity', 'family' => t('Electricité'),
'type' => 'Info', 'subtype' => array('numeric')
),
'CONSUMPTION' => array(
- 'name' => __('Consommation Electrique', __FILE__), 'familyid' => 'Electricity', 'family' => __('Electricité', __FILE__),
+ 'name' => t('Consommation Electrique'), 'familyid' => 'Electricity', 'family' => t('Electricité'),
'type' => 'Info', 'subtype' => array('numeric')
),
'DAILY_CONSUMPTION' => array(
- 'name' => __('Consommation Electrique Journalière', __FILE__), 'familyid' => 'Electricity', 'family' => __('Electricité', __FILE__),
+ 'name' => t('Consommation Electrique Journalière'), 'familyid' => 'Electricity', 'family' => t('Electricité'),
'type' => 'Info', 'subtype' => array('numeric')
),
'PRODUCTION' => array(
- 'name' => __('Production Electrique', __FILE__), 'familyid' => 'Electricity', 'family' => __('Electricité', __FILE__),
+ 'name' => t('Production Electrique'), 'familyid' => 'Electricity', 'family' => t('Electricité'),
'type' => 'Info', 'subtype' => array('numeric')
),
'DAILY_PRODUCTION' => array(
- 'name' => __('Production Electrique Journalière', __FILE__), 'familyid' => 'Electricity', 'family' => __('Electricité', __FILE__),
+ 'name' => t('Production Electrique Journalière'), 'familyid' => 'Electricity', 'family' => t('Electricité'),
'type' => 'Info', 'subtype' => array('numeric')
),
'VOLTAGE' => array(
- 'name' => __('Tension', __FILE__), 'familyid' => 'Electricity', 'family' => __('Electricité', __FILE__),
+ 'name' => t('Tension'), 'familyid' => 'Electricity', 'family' => t('Electricité'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'REBOOT' => array(
- 'name' => __('Redémarrage', __FILE__), 'familyid' => 'Electricity', 'family' => __('Electricité', __FILE__),
+ 'name' => t('Redémarrage'), 'familyid' => 'Electricity', 'family' => t('Electricité'),
'type' => 'Action', 'subtype' => array('other')
),
'TEMPERATURE' => array(
- 'name' => __('Température', __FILE__), 'familyid' => 'Environment', 'family' => __('Environnement', __FILE__),
+ 'name' => t('Température'), 'familyid' => 'Environment', 'family' => t('Environnement'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'AIR_QUALITY' => array(
- 'name' => __('Qualité de l\'air', __FILE__), 'familyid' => 'Environment', 'family' => __('Environnement', __FILE__),
+ 'name' => t('Qualité de l\'air'), 'familyid' => 'Environment', 'family' => t('Environnement'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'BRIGHTNESS' => array(
- 'name' => __('Luminosité', __FILE__), 'familyid' => 'Environment', 'family' => __('Environnement', __FILE__),
+ 'name' => t('Luminosité'), 'familyid' => 'Environment', 'family' => t('Environnement'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'PRESENCE' => array(
- 'name' => __('Présence', __FILE__), 'familyid' => 'Environment', 'family' => __('Environnement', __FILE__),
+ 'name' => t('Présence'), 'familyid' => 'Environment', 'family' => t('Environnement'),
'type' => 'Info', 'subtype' => array('binary')
),
'SMOKE' => array(
- 'name' => __('Détection de fumée', __FILE__), 'familyid' => 'Environment', 'family' => __('Environnement', __FILE__),
+ 'name' => t('Détection de fumée'), 'familyid' => 'Environment', 'family' => t('Environnement'),
'type' => 'Info', 'subtype' => array('binary')
),
'HUMIDITY' => array(
- 'name' => __('Humidité', __FILE__), 'familyid' => 'Environment', 'family' => __('Environnement', __FILE__),
+ 'name' => t('Humidité'), 'familyid' => 'Environment', 'family' => t('Environnement'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'UV' => array(
- 'name' => __('UV', __FILE__), 'familyid' => 'Environment', 'family' => __('Environnement', __FILE__),
+ 'name' => t('UV'), 'familyid' => 'Environment', 'family' => t('Environnement'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'CO2' => array(
- 'name' => __('CO2 (ppm)', __FILE__), 'familyid' => 'Environment', 'family' => __('Environnement', __FILE__),
+ 'name' => t('CO2 (ppm)'), 'familyid' => 'Environment', 'family' => t('Environnement'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'CO' => array(
- 'name' => __('CO (ppm)', __FILE__), 'familyid' => 'Environment', 'family' => __('Environnement', __FILE__),
+ 'name' => t('CO (ppm)'), 'familyid' => 'Environment', 'family' => t('Environnement'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'NOISE' => array(
- 'name' => __('Son (dB)', __FILE__), 'familyid' => 'Environment', 'family' => __('Environnement', __FILE__),
+ 'name' => t('Son (dB)'), 'familyid' => 'Environment', 'family' => t('Environnement'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'PRESSURE' => array(
- 'name' => __('Pression', __FILE__), 'familyid' => 'Environment', 'family' => __('Environnement', __FILE__),
+ 'name' => t('Pression'), 'familyid' => 'Environment', 'family' => t('Environnement'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'WATER_LEAK' => array(
- 'name' => __('Fuite d\'eau', __FILE__), 'familyid' => 'Environment', 'family' => __('Environnement', __FILE__),
+ 'name' => t('Fuite d\'eau'), 'familyid' => 'Environment', 'family' => t('Environnement'),
'type' => 'Info'
),
'FILTER_CLEAN_STATE' => array(
- 'name' => __('Etat du filtre', __FILE__), 'familyid' => 'Environment', 'family' => __('Environnement', __FILE__),
+ 'name' => t('Etat du filtre'), 'familyid' => 'Environment', 'family' => t('Environnement'),
'type' => 'Info', 'subtype' => array('binary')
),
'DEPTH' => array(
- 'name' => __('Profondeur', __FILE__), 'familyid' => 'Generic', 'family' => __('Generic', __FILE__),
+ 'name' => t('Profondeur'), 'familyid' => 'Generic', 'family' => t('Generic'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'DISTANCE' => array(
- 'name' => __('Distance', __FILE__), 'familyid' => 'Generic', 'family' => __('Generic', __FILE__),
+ 'name' => t('Distance'), 'familyid' => 'Generic', 'family' => t('Generic'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'BUTTON' => array(
- 'name' => __('Bouton', __FILE__), 'familyid' => 'Generic', 'family' => __('Generic', __FILE__),
+ 'name' => t('Bouton'), 'familyid' => 'Generic', 'family' => t('Generic'),
'type' => 'Info', 'subtype' => array('binary', 'numeric')
),
'GENERIC_INFO' => array(
- 'name' => ' ' . __('Générique', __FILE__), 'familyid' => 'Generic', 'family' => __('Generic', __FILE__),
+ 'name' => t('Générique', ' '), 'familyid' => 'Generic', 'family' => t('Generic'),
'type' => 'Info'
),
'GENERIC_ACTION' => array(
- 'name' => ' ' . __('Générique', __FILE__), 'familyid' => 'Generic', 'family' => __('Generic', __FILE__),
+ 'name' => t('Générique', ' '), 'familyid' => 'Generic', 'family' => t('Generic'),
'type' => 'Action'
),
'DONT' => array(
- 'name' => __('Ne pas tenir compte de cette commande', __FILE__), 'familyid' => 'Generic', 'family' => __('Generic', __FILE__),
+ 'name' => t('Ne pas tenir compte de cette commande'), 'familyid' => 'Generic', 'family' => t('Generic'),
'type' => 'All'
),
'BATTERY' => array(
- 'name' => __('Batterie', __FILE__), 'familyid' => 'Battery', 'family' => __('Batterie', __FILE__),
+ 'name' => t('Batterie'), 'familyid' => 'Battery', 'family' => t('Batterie'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'BATTERY_CHARGING' => array(
- 'name' => __('Batterie en charge', __FILE__), 'familyid' => 'Battery', 'family' => __('Batterie', __FILE__),
+ 'name' => t('Batterie en charge'), 'familyid' => 'Battery', 'family' => t('Batterie'),
'type' => 'Info', 'subtype' => array('binary')
),
'VOLUME' => array(
- 'name' => __('Volume', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Volume'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'MEDIA_STATUS' => array(
- 'name' => __('Status', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Status'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Info', 'subtype' => array('string')
),
'MEDIA_ALBUM' => array(
- 'name' => __('Album', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Album'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Info', 'subtype' => array('string')
),
'MEDIA_ARTIST' => array(
- 'name' => __('Artiste', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Artiste'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Info', 'subtype' => array('string')
),
'MEDIA_TITLE' => array(
- 'name' => __('Titre', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Titre'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Info', 'subtype' => array('string')
),
'MEDIA_POWER' => array(
- 'name' => __('Power', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Power'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Info', 'subtype' => array('string')
),
'SET_VOLUME' => array(
- 'name' => __('Volume', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Volume'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Action', 'subtype' => array('slider')
),
'CHANNEL' => array(
- 'name' => __('Chaine', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Chaine'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Info', 'subtype' => array('numeric', 'string'), 'calcul' => 'text'
),
'SET_CHANNEL' => array(
- 'name' => __('Chaine', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Chaine'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Action', 'subtype' => array('other', 'slider')
),
'MEDIA_PAUSE' => array(
- 'name' => __('Pause', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Pause'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Action', 'subtype' => array('other')
),
'MEDIA_RESUME' => array(
- 'name' => __('Lecture', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Lecture'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Action', 'subtype' => array('other')
),
'MEDIA_STOP' => array(
- 'name' => __('Stop', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Stop'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Action', 'subtype' => array('other')
),
'MEDIA_NEXT' => array(
- 'name' => __('Suivant', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Suivant'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Action', 'subtype' => array('other')
),
'MEDIA_PREVIOUS' => array(
- 'name' => __('Précedent', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Précedent'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Action', 'subtype' => array('other')
),
'MEDIA_ON' => array(
- 'name' => __('On', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('On'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Action', 'subtype' => array('other')
),
'MEDIA_OFF' => array(
- 'name' => __('Off', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Off'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Action', 'subtype' => array('other')
),
'MEDIA_STATE' => array(
- 'name' => __('Etat', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Etat'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Info', 'subtype' => array('binary')
),
'MEDIA_MUTE' => array(
- 'name' => __('Muet', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Muet'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Action', 'subtype' => array('other')
),
'MEDIA_UNMUTE' => array(
- 'name' => __('Non Muet', __FILE__), 'familyid' => 'Multimedia', 'family' => __('Multimédia', __FILE__),
+ 'name' => t('Non Muet'), 'familyid' => 'Multimedia', 'family' => t('Multimédia'),
'type' => 'Action', 'subtype' => array('other')
),
'FAN_SPEED' => array(
- 'name' => __('Vitesse ventilateur', __FILE__), 'familyid' => 'Fan', 'family' => __('Ventilateur', __FILE__),
+ 'name' => t('Vitesse ventilateur'), 'familyid' => 'Fan', 'family' => t('Ventilateur'),
'type' => 'Action', 'subtype' => array('slider')
),
'FAN_SPEED_STATE' => array(
- 'name' => __('Vitesse ventilateur Etat', __FILE__), 'familyid' => 'Fan', 'family' => __('Ventilateur', __FILE__),
+ 'name' => t('Vitesse ventilateur Etat'), 'familyid' => 'Fan', 'family' => t('Ventilateur'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'ROTATION' => array(
- 'name' => __('Rotation', __FILE__), 'familyid' => 'Fan', 'family' => __('Ventilateur', __FILE__),
+ 'name' => t('Rotation'), 'familyid' => 'Fan', 'family' => t('Ventilateur'),
'type' => 'Action', 'subtype' => array('slider')
),
'ROTATION_STATE' => array(
- 'name' => __('Rotation Etat', __FILE__), 'familyid' => 'Fan', 'family' => __('Ventilateur', __FILE__),
+ 'name' => t('Rotation Etat'), 'familyid' => 'Fan', 'family' => t('Ventilateur'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'DOCK' => array(
- 'name' => __('Retour base', __FILE__), 'familyid' => 'Robot', 'family' => __('Robot', __FILE__),
+ 'name' => t('Retour base'), 'familyid' => 'Robot', 'family' => t('Robot'),
'type' => 'Action', 'subtype' => array('other')
),
'DOCK_STATE' => array(
- 'name' => __('Base Etat', __FILE__), 'familyid' => 'Robot', 'family' => __('Robot', __FILE__),
+ 'name' => t('Base Etat'), 'familyid' => 'Robot', 'family' => t('Robot'),
'type' => 'Info', 'subtype' => array('binary')
),
'TIMER' => array(
- 'name' => __('Minuteur Etat', __FILE__), 'familyid' => 'Other', 'family' => __('Autre', __FILE__),
+ 'name' => t('Minuteur Etat'), 'familyid' => 'Other', 'family' => t('Autre'),
'type' => 'Info', 'subtype' => array('numeric'), 'calcul' => 'avg'
),
'SET_TIMER' => array(
- 'name' => __('Minuteur', __FILE__), 'familyid' => 'Other', 'family' => __('Autre', __FILE__),
+ 'name' => t('Minuteur'), 'familyid' => 'Other', 'family' => t('Autre'),
'type' => 'Action', 'subtype' => array('slider')
),
'TIMER_STATE' => array(
- 'name' => __('Minuteur Etat (pause ou non)', __FILE__), 'familyid' => 'Other', 'family' => __('Autre', __FILE__),
+ 'name' => t('Minuteur Etat (pause ou non)'), 'familyid' => 'Other', 'family' => t('Autre'),
'type' => 'Info', 'subtype' => array('binary', 'numeric'), 'calcul' => 'avg'
),
'TIMER_PAUSE' => array(
- 'name' => __('Minuteur pause', __FILE__), 'familyid' => 'Other', 'family' => __('Autre', __FILE__),
+ 'name' => t('Minuteur pause'), 'familyid' => 'Other', 'family' => t('Autre'),
'type' => 'Action', 'subtype' => array('other')
),
'TIMER_RESUME' => array(
- 'name' => __('Minuteur reprendre', __FILE__), 'familyid' => 'Other', 'family' => __('Autre', __FILE__),
+ 'name' => t('Minuteur reprendre'), 'familyid' => 'Other', 'family' => t('Autre'),
'type' => 'Action', 'subtype' => array('other')
),
),
'type' => array(
'info' => array(
- 'name' => __('Info', __FILE__),
+ 'name' => t('Info'),
'subtype' => array(
'numeric' => array(
- 'name' => __('Numérique', __FILE__),
+ 'name' => t('Numérique'),
'configuration' => array(
'minValue' => array('visible' => true),
'maxValue' => array('visible' => true),
@@ -875,7 +910,7 @@
),
),
'binary' => array(
- 'name' => __('Binaire', __FILE__),
+ 'name' => t('Binaire'),
'configuration' => array(
'minValue' => array('visible' => false),
'maxValue' => array('visible' => false),
@@ -889,7 +924,7 @@
),
),
'string' => array(
- 'name' => __('Autre', __FILE__),
+ 'name' => t('Autre'),
'configuration' => array(
'minValue' => array('visible' => false),
'maxValue' => array('visible' => false),
@@ -905,10 +940,10 @@
),
),
'action' => array(
- 'name' => __('Action', __FILE__),
+ 'name' => t('Action'),
'subtype' => array(
'other' => array(
- 'name' => __('Défaut', __FILE__),
+ 'name' => t('Défaut'),
'configuration' => array(
'minValue' => array('visible' => false),
'maxValue' => array('visible' => false),
@@ -922,7 +957,7 @@
),
),
'slider' => array(
- 'name' => __('Curseur', __FILE__),
+ 'name' => t('Curseur'),
'configuration' => array(
'minValue' => array('visible' => true),
'maxValue' => array('visible' => true),
@@ -936,7 +971,7 @@
),
),
'message' => array(
- 'name' => __('Message', __FILE__),
+ 'name' => t('Message'),
'configuration' => array(
'minValue' => array('visible' => false),
'maxValue' => array('visible' => false),
@@ -950,7 +985,7 @@
),
),
'color' => array(
- 'name' => __('Couleur', __FILE__),
+ 'name' => t('Couleur'),
'configuration' => array(
'minValue' => array('visible' => false),
'maxValue' => array('visible' => false),
@@ -964,7 +999,7 @@
),
),
'select' => array(
- 'name' => __('Liste', __FILE__),
+ 'name' => t('Liste'),
'configuration' => array(
'minValue' => array('visible' => false),
'maxValue' => array('visible' => false),
@@ -983,41 +1018,41 @@
),
);
$GLOBALS['JEEDOM_SCLOG_TEXT'] = array(
- 'startManual' => array('txt' => __('Scénario lancé manuellement', __FILE__), 'replace' => ''),
- 'startAutoOnEvent' => array('txt' => __('Scénario exécuté automatiquement sur événement venant de :', __FILE__) . ' ', 'replace' => ''),
- 'startOnEvent' => array('txt' => __('Scénario exécuté sur événement', __FILE__), 'replace' => ''),
- 'startAutoOnShedule' => array('txt' => __('Scénario exécuté automatiquement sur programmation', __FILE__), 'replace' => ''),
- 'finishOk' => array('txt' => __('Fin correcte du scénario', __FILE__), 'replace' => ''),
- 'sheduledOn' => array('txt' => ' ' . __('programmée à :', __FILE__) . ' ', 'replace' => ''),
- 'startByScenario' => array('txt' => __('Lancement provoqué par le scénario :', __FILE__) . ' ', 'replace' => ''),
- 'startCausedBy' => array('txt' => __('Lancement provoqué', __FILE__), 'replace' => ''),
- 'startSubTask' => array('txt' => __('************Lancement sous tâche**************', __FILE__), 'replace' => ''),
- 'endSubTask' => array('txt' => __('************FIN sous tâche**************', __FILE__), 'replace' => ''),
- 'sheduleNow' => array('txt' => ' ' . __('lancement immédiat', __FILE__) . ' ', 'replace' => ''),
+ 'startManual' => array('txt' => t('Scénario lancé manuellement'), 'replace' => ''),
+ 'startAutoOnEvent' => array('txt' => t('Scénario exécuté automatiquement sur événement venant de :', '', ' '), 'replace' => ''),
+ 'startOnEvent' => array('txt' => t('Scénario exécuté sur événement'), 'replace' => ''),
+ 'startAutoOnShedule' => array('txt' => t('Scénario exécuté automatiquement sur programmation'), 'replace' => ''),
+ 'finishOk' => array('txt' => t('Fin correcte du scénario'), 'replace' => ''),
+ 'sheduledOn' => array('txt' => t('programmée à :', ' ', ' '), 'replace' => ''),
+ 'startByScenario' => array('txt' => t('Lancement provoqué par le scénario :', '', ' '), 'replace' => ''),
+ 'startCausedBy' => array('txt' => t('Lancement provoqué'), 'replace' => ''),
+ 'startSubTask' => array('txt' => t('************Lancement sous tâche**************'), 'replace' => ''),
+ 'endSubTask' => array('txt' => t('************FIN sous tâche**************'), 'replace' => ''),
+ 'sheduleNow' => array('txt' => t('lancement immédiat', ' ', ' '), 'replace' => ''),
- 'execAction' => array('txt' => '- ' . __('Exécution du sous-élément de type [action] :', __FILE__) . ' ', 'replace' => ''),
- 'execCondition' => array('txt' => '- ' . __('Exécution du sous-élément de type [condition] :', __FILE__) . ' ', 'replace' => ''),
+ 'execAction' => array('txt' => t('Exécution du sous-élément de type [action] :', '- ', ' '), 'replace' => ''),
+ 'execCondition' => array('txt' => t('Exécution du sous-élément de type [condition] :', '- ', ' '), 'replace' => ''),
- 'execCmd' => array('txt' => __('Exécution de la commande', __FILE__) . ' ', 'replace' => ''),
- 'execCode' => array('txt' => __('Exécution d\'un bloc code', __FILE__) . ' ', 'replace' => ''),
- 'launchScenario' => array('txt' => __('Lancement du scénario :', __FILE__) . ' ', 'replace' => ''),
- 'launchScenarioSync' => array('txt' => __('Lancement du scénario en mode synchrone', __FILE__) . ' ', 'replace' => ''),
- 'start' => array('txt' => '-- ' . __('Début :', __FILE__), 'replace' => '::'),
- 'task' => array('txt' => __('Tâche :', __FILE__) . ' ', 'replace' => ''),
- 'event' => array('txt' => __('Changement de', __FILE__) . ' ', 'replace' => ''),
- 'setTag' => array('txt' => __('Mise à jour du tag', __FILE__) . ' ', 'replace' => ''),
+ 'execCmd' => array('txt' => t('Exécution de la commande', '', ' '), 'replace' => ''),
+ 'execCode' => array('txt' => t('Exécution d\'un bloc code', '', ' '), 'replace' => ''),
+ 'launchScenario' => array('txt' => t('Lancement du scénario :', '', ' '), 'replace' => ''),
+ 'launchScenarioSync' => array('txt' => t('Lancement du scénario en mode synchrone', '', ' '), 'replace' => ''),
+ 'start' => array('txt' => t('Début :', '-- '), 'replace' => '::'),
+ 'task' => array('txt' => t('Tâche :', '', ' '), 'replace' => ''),
+ 'event' => array('txt' => t('Changement de', '', ' '), 'replace' => ''),
+ 'setTag' => array('txt' => t('Mise à jour du tag', '', ' '), 'replace' => ''),
- 'stopTimeout' => array('txt' => __('Arrêt du scénario car il a dépassé son temps de timeout :', __FILE__) . ' ', 'replace' => ''),
- 'disableNoSubtask' => array('txt' => __('Scénario désactivé non lancement de la sous tâche', __FILE__), 'replace' => ''),
- 'disableEqNoExecCmd' => array('txt' => __('Equipement désactivé - impossible d\'exécuter la commande :', __FILE__) . ' ', 'replace' => ''),
- 'toStartUnfound' => array('txt' => __('Eléments à lancer non trouvé', __FILE__), 'replace' => ''),
- 'invalideShedule' => array('txt' => __(', heure programmée invalide :', __FILE__) . ' ', 'replace' => ''),
- 'noCmdFoundFor' => array('txt' => __('[Erreur] Aucune commande trouvée pour', __FILE__) . ' ', 'replace' => ''),
- 'unfoundCmd' => array('txt' => __('Commande introuvable', __FILE__), 'replace' => ''),
- 'unfoundCmdCheckId' => array('txt' => __('Commande introuvable - Vérifiez l\'id', __FILE__), 'replace' => ''),
- 'unfoundEq' => array('txt' => __('Action sur l\'équipement impossible. Equipement introuvable - Vérifiez l\'id :', __FILE__) . ' ', 'replace' => ''),
- 'unfoundScenario' => array('txt' => __('Action sur scénario impossible. Scénario introuvable - Vérifiez l\'id :', __FILE__) . ' ', 'replace' => ''),
- 'disableScenario' => array('txt' => __('Impossible d\'exécuter le scénario :', __FILE__) . ' ', 'replace' => ''),
- 'invalidExpr' => array('txt' => __('Expression non valide :', __FILE__) . ' ', 'replace' => ''),
- 'invalidDuration' => array('txt' => __('Aucune durée trouvée pour l\'action sleep ou la durée n\'est pas valide :', __FILE__) . ' ', 'replace' => ''),
+ 'stopTimeout' => array('txt' => t('Arrêt du scénario car il a dépassé son temps de timeout :', '', ' '), 'replace' => ''),
+ 'disableNoSubtask' => array('txt' => t('Scénario désactivé non lancement de la sous tâche'), 'replace' => ''),
+ 'disableEqNoExecCmd' => array('txt' => t('Equipement désactivé - impossible d\'exécuter la commande :', '', ' '), 'replace' => ''),
+ 'toStartUnfound' => array('txt' => t('Eléments à lancer non trouvé'), 'replace' => ''),
+ 'invalideShedule' => array('txt' => t(', heure programmée invalide :', '', ' '), 'replace' => ''),
+ 'noCmdFoundFor' => array('txt' => t('[Erreur] Aucune commande trouvée pour', '', ' '), 'replace' => ''),
+ 'unfoundCmd' => array('txt' => t('Commande introuvable'), 'replace' => ''),
+ 'unfoundCmdCheckId' => array('txt' => t('Commande introuvable - Vérifiez l\'id'), 'replace' => ''),
+ 'unfoundEq' => array('txt' => t('Action sur l\'équipement impossible. Equipement introuvable - Vérifiez l\'id :', '', ' '), 'replace' => ''),
+ 'unfoundScenario' => array('txt' => t('Action sur scénario impossible. Scénario introuvable - Vérifiez l\'id :', '', ' '), 'replace' => ''),
+ 'disableScenario' => array('txt' => t('Impossible d\'exécuter le scénario :', '', ' '), 'replace' => ''),
+ 'invalidExpr' => array('txt' => t('Expression non valide :', '', ' '), 'replace' => ''),
+ 'invalidDuration' => array('txt' => t('Aucune durée trouvée pour l\'action sleep ou la durée n\'est pas valide :', '', ' '), 'replace' => ''),
);
diff --git a/core/php/core.inc.php b/core/php/core.inc.php
index 2502e1ea54..ff2a246471 100644
--- a/core/php/core.inc.php
+++ b/core/php/core.inc.php
@@ -17,64 +17,49 @@
*/
date_default_timezone_set('Europe/Brussels');
require_once __DIR__ . '/../../vendor/autoload.php';
-require_once __DIR__ . '/../config/common.config.php';
-require_once __DIR__ . '/../class/DB.class.php';
-require_once __DIR__ . '/../class/config.class.php';
-require_once __DIR__ . '/../class/jeedom.class.php';
-require_once __DIR__ . '/../class/plugin.class.php';
-require_once __DIR__ . '/../class/translate.class.php';
-require_once __DIR__ . '/utils.inc.php';
-include_file('core', 'jeedom', 'config');
-include_file('core', 'compatibility', 'config');
-include_file('core', 'utils', 'class');
-include_file('core', 'log', 'class');
try {
$configs = config::byKeys(array('timezone', 'log::level'));
if (isset($configs['timezone'])) {
date_default_timezone_set($configs['timezone']);
}
-} catch (Exception $e) {
-} catch (Error $e) {
+} catch (\Throwable $throwable) {
+ error_log('Unable to set timezone: ' . $throwable->getMessage());
}
try {
if (isset($configs['log::level'])) {
log::define_error_reporting($configs['log::level']);
}
-} catch (Exception $e) {
-} catch (Error $e) {
+} catch (\Throwable $throwable) {
+ error_log('Unable to set log level: ' . $throwable->getMessage());
}
+/**
+ * Autoload function for specific Jeedom classes
+ * this function is called after the default Composer autoloader
+ * it will load specific classes such as Cmd, Real, etc.
+ * for plugins that do not use namespaces or Composer autoloading
+ */
function jeedomAutoload($_classname) {
- /* core class always in /core/class : */
- $path = __DIR__ . "/../../core/class/$_classname.class.php";
- if (file_exists($path)) {
- include_file('core', $_classname, 'class');
- } else if (substr($_classname, 0, 4) === 'com_') {
- /* class com_$1 in /core/com/$1.com.php */
- include_file('core', substr($_classname, 4), 'com');
- } else if (substr($_classname, 0, 5) === 'repo_') {
- /* class repo_$1 in /core/repo/$1.repo.php */
- include_file('core', substr($_classname, 5), 'repo');
- } else if (strpos($_classname, '\\') === false && strpos($_classname, '/') === false) {
- /* autoload for plugins : no namespace */
- $classname = str_replace(array('Real', 'Cmd'), '', $_classname);
+ if (strpos($_classname, '\\') !== false || strpos($_classname, '/') !== false) {
+ return;
+ }
+
+ /* autoload for plugins : no namespace */
+ $classname = str_replace(array('Real', 'Cmd'), '', $_classname);
+ $plugin_active = config::byKey('active', $classname, null);
+ if (($plugin_active === null || $plugin_active == '' || $plugin_active == 0) && strpos($classname, '_') !== false) {
+ $classname = explode('_', $classname)[0];
$plugin_active = config::byKey('active', $classname, null);
- if (($plugin_active === null || $plugin_active == '' || $plugin_active == 0) && strpos($classname, '_') !== false) {
- $classname = explode('_', $classname)[0];
- $plugin_active = config::byKey('active', $classname, null);
- }
- if ($plugin_active == 1) {
- try {
- include_file('core', $classname, 'class', $classname);
- } catch (Exception $e) {
-
- } catch (Error $e) {
-
- }
+ }
+ if ($plugin_active == 1) {
+ try {
+ include_file('core', $classname, 'class', $classname);
+ } catch (\Throwable $throwable) {
+ error_log('Error loading class ' . $classname . ': ' . $throwable->getMessage());
}
}
}
-spl_autoload_register('jeedomAutoload', true, true);
+spl_autoload_register('jeedomAutoload');
diff --git a/core/php/utils.inc.php b/core/php/utils.inc.php
index 08b0613c92..858de46155 100644
--- a/core/php/utils.inc.php
+++ b/core/php/utils.inc.php
@@ -1839,3 +1839,13 @@ function implode_recursive($_array, $_separator, $_key = '') {
}
return $result;
}
+
+ function __($_content, $_name, $_backslash = false)
+ {
+ try {
+ return translate::sentence(str_replace("\'", "'", $_content), $_name, $_backslash);
+ } catch (\Throwable $t) {
+ error_log($t->getMessage());
+ throw $t;
+ }
+ }