diff --git a/.travis.yml b/.travis.yml index 972e75da..17203bb5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,51 +1,15 @@ language: php php: - - 5.6 - - 7.0 - - 7.1 - 7.2 - - nightly - -#env: -# global: -# - DB=mysql -# matrix: -# - GLPIVER=9.1/bugfixes -# - GLPIVER=master + - 7.4 before_script: - composer self-update -# - git clone --depth=1 https://github.com/glpi-project/glpi -b $GLPIVER ../glpi && cd ../glpi -# - composer install --no-dev -# - mysql -u root -e 'create database glpitest;' -# - php tools/cliinstall.php --db=glpi-test --user=travis --tests -# - mv ../{LNAME} plugins/{LNAME} -# - cd plugins/{LNAME} - - composer install -o - + - composer install --optimize-autoloader --prefer-dist --no-interaction --no-progress --no-suggest script: - - vendor/bin/robo --no-interaction code:cs -# - mysql -u root -e 'select version();' -# - ./vendor/bin/atoum -bf tests/bootstrap.php -d tests/units/ - - -matrix: -# exclude: -# - php: 5.4 -# env: GLPIVER=master - allow_failures: - - php: nightly + - vendor/bin/robo --no-interaction code:cs --strict cache: directories: - $HOME/.composer/cache - -#notifications: -# irc: -# channels: -# - "irc.freenode.org#channel" -# on_success: change -# on_failure: always -# use_notice: true -# skip_join: true diff --git a/composer.json b/composer.json index e21ea281..d3318a00 100644 --- a/composer.json +++ b/composer.json @@ -1,10 +1,15 @@ { + "require": { + "php": "^7.2" + }, "require-dev": { "glpi-project/tools": "^0.1" }, "config": { + "optimize-autoloader": true, "platform": { - "php": "5.6" - } + "php": "7.2.0" + }, + "sort-packages": true } } diff --git a/composer.lock b/composer.lock index a7164017..7dc47c3f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,36 +4,36 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "1780e587040d1a21844800dc378c2f2e", + "content-hash": "469eca19f475207181e67a99b51f34a4", "packages": [], "packages-dev": [ { "name": "consolidation/annotated-command", - "version": "2.12.0", + "version": "4.1.1", "source": { "type": "git", "url": "https://github.com/consolidation/annotated-command.git", - "reference": "512a2e54c98f3af377589de76c43b24652bcb789" + "reference": "efc58dc0f34a45539787c5190b41b5d2a50a08da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/512a2e54c98f3af377589de76c43b24652bcb789", - "reference": "512a2e54c98f3af377589de76c43b24652bcb789", + "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/efc58dc0f34a45539787c5190b41b5d2a50a08da", + "reference": "efc58dc0f34a45539787c5190b41b5d2a50a08da", "shasum": "" }, "require": { - "consolidation/output-formatters": "^3.4", - "php": ">=5.4.5", - "psr/log": "^1", - "symfony/console": "^2.8|^3|^4", - "symfony/event-dispatcher": "^2.5|^3|^4", - "symfony/finder": "^2.5|^3|^4" + "consolidation/output-formatters": "^4.1.1", + "php": ">=7.1.3", + "psr/log": "^1|^2", + "symfony/console": "^4.4.8|^5", + "symfony/event-dispatcher": "^4.4.8|^5", + "symfony/finder": "^4.4.8|^5" }, "require-dev": { "g1a/composer-test-scenarios": "^3", - "php-coveralls/php-coveralls": "^1", + "php-coveralls/php-coveralls": "^2.2", "phpunit/phpunit": "^6", - "squizlabs/php_codesniffer": "^2.7" + "squizlabs/php_codesniffer": "^3" }, "type": "library", "extra": { @@ -47,42 +47,10 @@ "php": "7.1.3" } } - }, - "symfony2": { - "require": { - "symfony/console": "^2.8" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36" - }, - "remove": [ - "php-coveralls/php-coveralls" - ], - "config": { - "platform": { - "php": "5.4.8" - } - }, - "scenario-options": { - "create-lockfile": "false" - } - }, - "phpunit4": { - "require-dev": { - "phpunit/phpunit": "^4.8.36" - }, - "remove": [ - "php-coveralls/php-coveralls" - ], - "config": { - "platform": { - "php": "5.4.8" - } - } } }, "branch-alias": { - "dev-master": "2.x-dev" + "dev-master": "4.x-dev" } }, "autoload": { @@ -101,7 +69,7 @@ } ], "description": "Initialize Symfony Console commands from annotated command class methods.", - "time": "2019-03-08T16:55:03+00:00" + "time": "2020-05-27T21:11:36+00:00" }, { "name": "consolidation/config", @@ -186,74 +154,45 @@ }, { "name": "consolidation/log", - "version": "1.1.1", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/consolidation/log.git", - "reference": "b2e887325ee90abc96b0a8b7b474cd9e7c896e3a" + "reference": "ba0bf6af1fbd09ed4dc18fc2f27b12ceff487cbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/log/zipball/b2e887325ee90abc96b0a8b7b474cd9e7c896e3a", - "reference": "b2e887325ee90abc96b0a8b7b474cd9e7c896e3a", + "url": "https://api.github.com/repos/consolidation/log/zipball/ba0bf6af1fbd09ed4dc18fc2f27b12ceff487cbf", + "reference": "ba0bf6af1fbd09ed4dc18fc2f27b12ceff487cbf", "shasum": "" }, "require": { - "php": ">=5.4.5", + "php": ">=7.1.3", "psr/log": "^1.0", - "symfony/console": "^2.8|^3|^4" + "symfony/console": "^4|^5" }, "require-dev": { "g1a/composer-test-scenarios": "^3", - "php-coveralls/php-coveralls": "^1", + "php-coveralls/php-coveralls": "^2.2", "phpunit/phpunit": "^6", - "squizlabs/php_codesniffer": "^2" + "squizlabs/php_codesniffer": "^3" }, "type": "library", "extra": { "scenarios": { "symfony4": { - "require": { - "symfony/console": "^4.0" - }, - "config": { - "platform": { - "php": "7.1.3" - } - } - }, - "symfony2": { - "require": { - "symfony/console": "^2.8" - }, "require-dev": { - "phpunit/phpunit": "^4.8.36" - }, - "remove": [ - "php-coveralls/php-coveralls" - ], - "config": { - "platform": { - "php": "5.4.8" - } - } - }, - "phpunit4": { - "require-dev": { - "phpunit/phpunit": "^4.8.36" + "symfony/console": "^4" }, - "remove": [ - "php-coveralls/php-coveralls" - ], "config": { "platform": { - "php": "5.4.8" + "php": "7.1.3" } } } }, "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -272,35 +211,35 @@ } ], "description": "Improved Psr-3 / Psr\\Log logger based on Symfony Console components.", - "time": "2019-01-01T17:30:51+00:00" + "time": "2020-05-27T17:06:13+00:00" }, { "name": "consolidation/output-formatters", - "version": "3.5.0", + "version": "4.1.1", "source": { "type": "git", "url": "https://github.com/consolidation/output-formatters.git", - "reference": "99ec998ffb697e0eada5aacf81feebfb13023605" + "reference": "9deeddd6a916d0a756b216a8b40ce1016e17c0b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/99ec998ffb697e0eada5aacf81feebfb13023605", - "reference": "99ec998ffb697e0eada5aacf81feebfb13023605", + "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/9deeddd6a916d0a756b216a8b40ce1016e17c0b9", + "reference": "9deeddd6a916d0a756b216a8b40ce1016e17c0b9", "shasum": "" }, "require": { "dflydev/dot-access-data": "^1.1.0", - "php": ">=5.4.0", - "symfony/console": "^2.8|^3|^4", - "symfony/finder": "^2.5|^3|^4" + "php": ">=7.1.3", + "symfony/console": "^4|^5", + "symfony/finder": "^4|^5" }, "require-dev": { "g1a/composer-test-scenarios": "^3", - "php-coveralls/php-coveralls": "^1", - "phpunit/phpunit": "^5.7.27", - "squizlabs/php_codesniffer": "^2.7", - "symfony/var-dumper": "^2.8|^3|^4", - "victorjonsson/markdowndocs": "^1.3" + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^6", + "squizlabs/php_codesniffer": "^3", + "symfony/var-dumper": "^4", + "symfony/yaml": "^4" }, "suggest": { "symfony/var-dumper": "For using the var_dump formatter" @@ -312,49 +251,15 @@ "require": { "symfony/console": "^4.0" }, - "require-dev": { - "phpunit/phpunit": "^6" - }, "config": { "platform": { "php": "7.1.3" } } - }, - "symfony3": { - "require": { - "symfony/console": "^3.4", - "symfony/finder": "^3.4", - "symfony/var-dumper": "^3.4" - }, - "config": { - "platform": { - "php": "5.6.32" - } - } - }, - "symfony2": { - "require": { - "symfony/console": "^2.8" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36" - }, - "remove": [ - "php-coveralls/php-coveralls" - ], - "config": { - "platform": { - "php": "5.4.8" - } - }, - "scenario-options": { - "create-lockfile": "false" - } } }, "branch-alias": { - "dev-master": "3.x-dev" + "dev-master": "4.x-dev" } }, "autoload": { @@ -373,30 +278,30 @@ } ], "description": "Format text by applying transformations provided by plug-in formatters.", - "time": "2019-05-30T23:16:01+00:00" + "time": "2020-05-27T20:51:17+00:00" }, { "name": "consolidation/robo", - "version": "1.4.11", + "version": "1.4.12", "source": { "type": "git", "url": "https://github.com/consolidation/Robo.git", - "reference": "5fa1d901776a628167a325baa9db95d8edf13a80" + "reference": "eb45606f498b3426b9a98b7c85e300666a968e51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/Robo/zipball/5fa1d901776a628167a325baa9db95d8edf13a80", - "reference": "5fa1d901776a628167a325baa9db95d8edf13a80", + "url": "https://api.github.com/repos/consolidation/Robo/zipball/eb45606f498b3426b9a98b7c85e300666a968e51", + "reference": "eb45606f498b3426b9a98b7c85e300666a968e51", "shasum": "" }, "require": { - "consolidation/annotated-command": "^2.11.0", - "consolidation/config": "^1.2", - "consolidation/log": "~1", - "consolidation/output-formatters": "^3.1.13", - "consolidation/self-update": "^1", - "grasmash/yaml-expander": "^1.3", - "league/container": "^2.2", + "consolidation/annotated-command": "^2.11.0|^4.1", + "consolidation/config": "^1.2.1", + "consolidation/log": "^1.1.1|^2", + "consolidation/output-formatters": "^3.1.13|^4.1", + "consolidation/self-update": "^1.1.5", + "grasmash/yaml-expander": "^1.4", + "league/container": "^2.4.1", "php": ">=5.5.0", "symfony/console": "^2.8|^3|^4", "symfony/event-dispatcher": "^2.5|^3|^4", @@ -408,20 +313,13 @@ "codegyre/robo": "< 1.0" }, "require-dev": { - "codeception/aspect-mock": "^1|^2.1.1", - "codeception/base": "^2.3.7", - "codeception/verify": "^0.3.2", "g1a/composer-test-scenarios": "^3", - "goaop/framework": "~2.1.2", - "goaop/parser-reflection": "^1.1.0", "natxet/cssmin": "3.0.4", - "nikic/php-parser": "^3.1.5", - "patchwork/jsqueeze": "~2", + "patchwork/jsqueeze": "^2", "pear/archive_tar": "^1.4.4", "php-coveralls/php-coveralls": "^1", - "phpunit/php-code-coverage": "~2|~4", - "sebastian/comparator": "^1.2.4", - "squizlabs/php_codesniffer": "^2.8" + "phpunit/phpunit": "^5.7.27", + "squizlabs/php_codesniffer": "^3" }, "suggest": { "henrikbjorn/lurker": "For monitoring filesystem changes in taskWatch", @@ -449,8 +347,11 @@ "require": { "symfony/console": "^2.8" }, + "require-dev": { + "phpunit/phpunit": "^4.8.36" + }, "remove": [ - "goaop/framework" + "php-coveralls/php-coveralls" ], "config": { "platform": { @@ -463,7 +364,7 @@ } }, "branch-alias": { - "dev-master": "2.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -482,26 +383,26 @@ } ], "description": "Modern task runner", - "time": "2019-10-29T15:50:02+00:00" + "time": "2020-02-18T17:31:26+00:00" }, { "name": "consolidation/self-update", - "version": "1.1.5", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/consolidation/self-update.git", - "reference": "a1c273b14ce334789825a09d06d4c87c0a02ad54" + "reference": "dba6b2c0708f20fa3ba8008a2353b637578849b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/self-update/zipball/a1c273b14ce334789825a09d06d4c87c0a02ad54", - "reference": "a1c273b14ce334789825a09d06d4c87c0a02ad54", + "url": "https://api.github.com/repos/consolidation/self-update/zipball/dba6b2c0708f20fa3ba8008a2353b637578849b4", + "reference": "dba6b2c0708f20fa3ba8008a2353b637578849b4", "shasum": "" }, "require": { "php": ">=5.5.0", - "symfony/console": "^2.8|^3|^4", - "symfony/filesystem": "^2.5|^3|^4" + "symfony/console": "^2.8|^3|^4|^5", + "symfony/filesystem": "^2.5|^3|^4|^5" }, "bin": [ "scripts/release" @@ -522,17 +423,17 @@ "MIT" ], "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - }, { "name": "Alexander Menk", "email": "menk@mestrona.net" + }, + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" } ], "description": "Provides a self:update command for Symfony Console applications.", - "time": "2018-10-28T01:52:03+00:00" + "time": "2020-04-13T02:49:20+00:00" }, { "name": "container-interop/container-interop", @@ -663,16 +564,16 @@ }, { "name": "glpi-project/tools", - "version": "0.1.8", + "version": "0.1.13", "source": { "type": "git", "url": "https://github.com/glpi-project/tools.git", - "reference": "39ca503a00454e6c5d7d97bd8baff358d262a897" + "reference": "2028ecf9acd8b838cff37771dcab77ced9391f41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/glpi-project/tools/zipball/39ca503a00454e6c5d7d97bd8baff358d262a897", - "reference": "39ca503a00454e6c5d7d97bd8baff358d262a897", + "url": "https://api.github.com/repos/glpi-project/tools/zipball/2028ecf9acd8b838cff37771dcab77ced9391f41", + "reference": "2028ecf9acd8b838cff37771dcab77ced9391f41", "shasum": "" }, "require": { @@ -709,7 +610,7 @@ "plugins", "tools" ], - "time": "2019-06-07T09:46:17+00:00" + "time": "2020-06-19T10:29:26+00:00" }, { "name": "grasmash/expander", @@ -1011,16 +912,16 @@ }, { "name": "psr/log", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", "shasum": "" }, "require": { @@ -1054,20 +955,20 @@ "psr", "psr-3" ], - "time": "2019-11-01T11:05:21+00:00" + "time": "2020-03-23T09:12:05+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.5.4", + "version": "3.5.5", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "dceec07328401de6211037abbb18bda423677e26" + "reference": "73e2e7f57d958e7228fce50dc0c61f58f017f9f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dceec07328401de6211037abbb18bda423677e26", - "reference": "dceec07328401de6211037abbb18bda423677e26", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/73e2e7f57d958e7228fce50dc0c61f58f017f9f6", + "reference": "73e2e7f57d958e7228fce50dc0c61f58f017f9f6", "shasum": "" }, "require": { @@ -1105,29 +1006,33 @@ "phpcs", "standards" ], - "time": "2020-01-30T22:20:29+00:00" + "time": "2020-04-17T01:09:41+00:00" }, { "name": "symfony/console", - "version": "v3.4.37", + "version": "v4.4.10", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "7c5bdd346f9d90a2d22d4e1fe61e02dc19b98f12" + "reference": "326b064d804043005526f5a0494cfb49edb59bb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/7c5bdd346f9d90a2d22d4e1fe61e02dc19b98f12", - "reference": "7c5bdd346f9d90a2d22d4e1fe61e02dc19b98f12", + "url": "https://api.github.com/repos/symfony/console/zipball/326b064d804043005526f5a0494cfb49edb59bb0", + "reference": "326b064d804043005526f5a0494cfb49edb59bb0", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2" }, "conflict": { "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", "symfony/process": "<3.3" }, "provide": { @@ -1135,11 +1040,12 @@ }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~3.3|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/lock": "~3.4|~4.0", - "symfony/process": "~3.3|~4.0" + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" }, "suggest": { "psr/log": "For using the console logger", @@ -1150,7 +1056,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -1177,41 +1083,69 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2020-01-10T07:52:48+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-30T20:06:45+00:00" }, { - "name": "symfony/debug", - "version": "v3.4.37", + "name": "symfony/event-dispatcher", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "70dd18e93bb8bdf3c4db7fde832619fef9828cf8" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "a5370aaa7807c7a439b21386661ffccf3dff2866" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/70dd18e93bb8bdf3c4db7fde832619fef9828cf8", - "reference": "70dd18e93bb8bdf3c4db7fde832619fef9828cf8", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a5370aaa7807c7a439b21386661ffccf3dff2866", + "reference": "a5370aaa7807c7a439b21386661ffccf3dff2866", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "psr/log": "~1.0" + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1" }, "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" }, "require-dev": { - "symfony/http-kernel": "~2.8|~3.0|~4.0" + "psr/log": "~1.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Debug\\": "" + "Symfony\\Component\\EventDispatcher\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -1231,54 +1165,55 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Debug Component", + "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2020-01-08T16:36:15+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-20T08:37:50+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "v3.4.37", + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.7", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "79ede8f2836e5ec910ebb325bde40f987244baa8" + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/79ede8f2836e5ec910ebb325bde40f987244baa8", - "reference": "79ede8f2836e5ec910ebb325bde40f987244baa8", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c43ab685673fb6c8d84220c77897b1d6cdbe1d18", + "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" - }, - "conflict": { - "symfony/dependency-injection": "<3.3" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0" + "php": "^7.1.3" }, "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "1.1-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Symfony\\Contracts\\EventDispatcher\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1286,40 +1221,48 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony EventDispatcher Component", + "description": "Generic abstractions related to dispatching event", "homepage": "https://symfony.com", - "time": "2020-01-04T12:05:51+00:00" + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-09-17T09:54:03+00:00" }, { "name": "symfony/filesystem", - "version": "v3.4.37", + "version": "v4.4.10", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "0a0d3b4bda11aa3a0464531c40e681e184e75628" + "reference": "b27f491309db5757816db672b256ea2e03677d30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/0a0d3b4bda11aa3a0464531c40e681e184e75628", - "reference": "0a0d3b4bda11aa3a0464531c40e681e184e75628", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/b27f491309db5757816db672b256ea2e03677d30", + "reference": "b27f491309db5757816db672b256ea2e03677d30", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": ">=7.1.3", "symfony/polyfill-ctype": "~1.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -1346,29 +1289,43 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2020-01-17T08:50:08+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-30T18:50:54+00:00" }, { "name": "symfony/finder", - "version": "v3.4.37", + "version": "v4.4.10", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "a90a9d3b9f458a5cdeabfa4090b20c000ca3962f" + "reference": "5729f943f9854c5781984ed4907bbb817735776b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/a90a9d3b9f458a5cdeabfa4090b20c000ca3962f", - "reference": "a90a9d3b9f458a5cdeabfa4090b20c000ca3962f", + "url": "https://api.github.com/repos/symfony/finder/zipball/5729f943f9854c5781984ed4907bbb817735776b", + "reference": "5729f943f9854c5781984ed4907bbb817735776b", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^7.1.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -1395,20 +1352,34 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2020-01-01T11:03:25+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.13.1", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" + "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d", + "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d", "shasum": "" }, "require": { @@ -1420,7 +1391,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -1453,20 +1428,34 @@ "polyfill", "portable" ], - "time": "2019-11-27T13:56:44+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.13.1", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" + "reference": "7110338d81ce1cbc3e273136e4574663627037a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7110338d81ce1cbc3e273136e4574663627037a7", + "reference": "7110338d81ce1cbc3e273136e4574663627037a7", "shasum": "" }, "require": { @@ -1478,7 +1467,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -1512,29 +1505,199 @@ "portable", "shim" ], - "time": "2019-11-27T14:18:11+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-06-06T08:46:27+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.17.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "fa0837fe02d617d31fbb25f990655861bb27bd1a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fa0837fe02d617d31fbb25f990655861bb27bd1a", + "reference": "fa0837fe02d617d31fbb25f990655861bb27bd1a", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-06-06T08:46:27+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.17.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "4a5b6bba3259902e386eb80dd1956181ee90b5b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4a5b6bba3259902e386eb80dd1956181ee90b5b2", + "reference": "4a5b6bba3259902e386eb80dd1956181ee90b5b2", + "shasum": "" + }, + "require": { + "php": ">=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/process", - "version": "v3.4.37", + "version": "v4.4.10", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "5b9d2bcffe4678911a4c941c00b7c161252cf09a" + "reference": "c714958428a85c86ab97e3a0c96db4c4f381b7f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/5b9d2bcffe4678911a4c941c00b7c161252cf09a", - "reference": "5b9d2bcffe4678911a4c941c00b7c161252cf09a", + "url": "https://api.github.com/repos/symfony/process/zipball/c714958428a85c86ab97e3a0c96db4c4f381b7f5", + "reference": "c714958428a85c86ab97e3a0c96db4c4f381b7f5", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^7.1.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -1561,31 +1724,103 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2020-01-01T11:03:25+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-30T20:06:45+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v1.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ffc7f5692092df31515df2a5ecf3b7302b3ddacf", + "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-10-14T12:27:06+00:00" }, { "name": "symfony/yaml", - "version": "v3.4.37", + "version": "v4.4.10", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "aa46bc2233097d5212332c907f9911533acfbf80" + "reference": "c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/aa46bc2233097d5212332c907f9911533acfbf80", - "reference": "aa46bc2233097d5212332c907f9911533acfbf80", + "url": "https://api.github.com/repos/symfony/yaml/zipball/c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a", + "reference": "c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": ">=7.1.3", "symfony/polyfill-ctype": "~1.8" }, "conflict": { "symfony/console": "<3.4" }, "require-dev": { - "symfony/console": "~3.4|~4.0" + "symfony/console": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -1593,7 +1828,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -1620,7 +1855,21 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2020-01-13T08:00:59+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-20T08:37:50+00:00" } ], "aliases": [], @@ -1628,9 +1877,12 @@ "stability-flags": [], "prefer-stable": false, "prefer-lowest": false, - "platform": [], + "platform": { + "php": "^7.2" + }, "platform-dev": [], "platform-overrides": { - "php": "5.6" - } + "php": "7.2.0" + }, + "plugin-api-version": "1.1.0" } diff --git a/genericobject.xml b/genericobject.xml index e7ea0a08..e07fb37a 100644 --- a/genericobject.xml +++ b/genericobject.xml @@ -25,14 +25,9 @@ - 2.9.0-rc2 + 2.9.0 ~9.5.0 - https://github.com/pluginsGLPI/genericobject/releases/download/2.9.0-rc2/glpi-genericobject-2.9.0-rc2.tar.bz2 - - - 2.9.0-rc1 - ~9.5.0 - https://github.com/pluginsGLPI/genericobject/releases/download/2.9.0-rc1/glpi-genericobject-2.9.0-rc1.tar.bz2 + https://github.com/pluginsGLPI/genericobject/releases/download/2.9.0/glpi-genericobject-2.9.0.tar.bz2 2.8.0 diff --git a/hook.php b/hook.php index c28aae8f..0a746098 100644 --- a/hook.php +++ b/hook.php @@ -108,8 +108,8 @@ function plugin_uninstall_addUninstallTypes($uninstal_types = []) { function plugin_genericobject_install() { global $DB; - include_once(GLPI_ROOT."/plugins/genericobject/inc/object.class.php"); - include_once(GLPI_ROOT."/plugins/genericobject/inc/type.class.php"); + include_once(GENERICOBJECT_DIR."/inc/object.class.php"); + include_once(GENERICOBJECT_DIR."/inc/type.class.php"); $migration = new Migration(PLUGIN_GENERICOBJECT_VERSION); @@ -123,7 +123,7 @@ function plugin_genericobject_install() { ] as $itemtype) { if ($plug=isPluginItemType($itemtype)) { $plugname = strtolower($plug['plugin']); - $dir = GLPI_ROOT . "/plugins/$plugname/inc/"; + $dir = Plugin::getPhpDir($plugname)."/inc/"; $item = strtolower($plug['class']); if (file_exists("$dir$item.class.php")) { include_once ("$dir$item.class.php"); @@ -155,8 +155,8 @@ function plugin_genericobject_install() { function plugin_genericobject_uninstall() { global $DB; - include_once(GLPI_ROOT."/plugins/genericobject/inc/object.class.php"); - include_once(GLPI_ROOT."/plugins/genericobject/inc/type.class.php"); + include_once(GENERICOBJECT_DIR."/inc/object.class.php"); + include_once(GENERICOBJECT_DIR."/inc/type.class.php"); //For each type foreach (PluginGenericobjectType::getTypes(true) as $tmp => $value) { @@ -174,7 +174,7 @@ function plugin_genericobject_uninstall() { ] as $itemtype) { if ($plug=isPluginItemType($itemtype)) { $plugname = strtolower($plug['plugin']); - $dir = GLPI_ROOT . "/plugins/$plugname/inc/"; + $dir = Plugin::getPhpDir($plugname)."/inc/"; $item = strtolower($plug['class']); if (file_exists("$dir$item.class.php")) { include_once ("$dir$item.class.php"); diff --git a/inc/field.class.php b/inc/field.class.php index 77c0157a..f4cbd826 100644 --- a/inc/field.class.php +++ b/inc/field.class.php @@ -282,6 +282,7 @@ static function dropdownFields($name, $itemtype, $used = []) { static function getFieldOptions($field, $itemtype = "") { global $GO_FIELDS; + $options = []; $cleaned_field = preg_replace("/^plugin_genericobject_/", '', $field); if (!isset($GO_FIELDS[$cleaned_field]) && !empty($itemtype)) { // This field has been dynamically defined because it's an isolated dropdown @@ -295,7 +296,7 @@ static function getFieldOptions($field, $itemtype = "") { ); $options = $GO_FIELDS[$tmpfield]; $options['realname'] = $tmpfield; - } else { + } else if (isset($GO_FIELDS[$cleaned_field])) { $options = $GO_FIELDS[$cleaned_field]; $options['realname'] = $cleaned_field; } @@ -375,7 +376,7 @@ public static function addNewField($table, $field, $after = false) { $query.="DATE DEFAULT NULL"; break; case 'datetime': - $query.="DATETIME DEFAULT NULL"; + $query.="TIMESTAMP NULL DEFAULT NULL"; break; case 'float' : $query .= "FLOAT NOT NULL DEFAULT '0'"; diff --git a/inc/functions.php b/inc/functions.php index 9ca93ce7..35f9dad7 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -14,7 +14,7 @@ function dropdown_getTypeName($class, $nb = 0) { $dropdown_type = isset($options['dropdown_type']) ? $options['dropdown_type'] : null; - $label = $options['name']; + $label = $options['name'] ?? "no-name"; if (!is_null($dropdown_type) and $dropdown_type==='isolated') { $linked_itemtype_object = new $instance->linked_itemtype(); $label .= " (" . __($linked_itemtype_object::getTypeName(), 'genericobject') . ")"; @@ -38,7 +38,7 @@ function _log() { if (count($trace)>0) { $glpi_root = str_replace( "\\", "/", GLPI_ROOT ); $trace_file = str_replace( "\\", "/", $trace[0]['file'] ); - $filename = preg_replace("|^".$glpi_root."/plugins/genericobject/|", "", $trace_file); + $filename = preg_replace("|^".$glpi_root."/".Plugin::getPhpDir('genericobject', false)."/|", "", $trace_file); } if (count($trace) > 1) { $caller = $trace[1]; diff --git a/inc/object.class.php b/inc/object.class.php index e1f088d9..13617c97 100644 --- a/inc/object.class.php +++ b/inc/object.class.php @@ -26,6 +26,7 @@ ---------------------------------------------------------------------- */ class PluginGenericobjectObject extends CommonDBTM { + use Glpi\Features\Clonable; protected $objecttype; @@ -76,6 +77,17 @@ public function __construct() { } } + public function getCloneRelations() :array { + return [ + Computer_Item::class, + Contract_Item::class, + Document_Item::class, + Infocom::class, + Item_devices::class, + NetworkPort::class, + ]; + } + /** * Display information on treeview plugin @@ -91,7 +103,7 @@ static function showGenericObjectTreeview($params) { $item = new $params['itemtype'](); if ($item->getFromDB($params['id'])) { $params['name'] = $item->fields["name"]; - $params['url'] = $CFG_GLPI['root_doc']."/plugins/genericobject/front/object.form.php". + $params['url'] = Plugin::getWebDir('genericobject')."/front/object.form.php". "?itemtype=".$params['itemtype']."&id=".$params['id']; } } @@ -110,8 +122,7 @@ static function getParentNodeSearchUrl($params) { if (array_key_exists($params['itemtype'], PluginGenericobjectType::getTypes())) { $item = new $params['itemtype'](); - $search = $item->getObjectSearchOptions(); - + $search = $item->rawSearchOptions(); //get searchoption id for location_id foreach ($search as $key => $val) { if (isset($val['table']) && $val['table'] === 'glpi_locations') { @@ -240,14 +251,15 @@ static function registerType() { } } + $plugin_gen_path = Plugin::getPhpDir('geninventorynumber'); if ($item->canUsePluginGeninventorynumber()) { if (!in_array($class, $GENINVENTORYNUMBER_TYPES)) { - include_once (GLPI_ROOT.'/plugins/geninventorynumber/inc/profile.class.php'); + include_once ("$plugin_gen_path/inc/profile.class.php"); PluginGeninventorynumberConfigField::registerNewItemType($class); array_push($GENINVENTORYNUMBER_TYPES, $class); } } else if ($plugin->isActivated('geninventorynumber')) { - include_once (GLPI_ROOT.'/plugins/geninventorynumber/inc/profile.class.php'); + include_once ("$plugin_gen_path/inc/profile.class.php"); PluginGeninventorynumberConfigField::unregisterNewItemType($class); } } @@ -271,7 +283,6 @@ static function registerType() { static function getMenuIcon($itemtype) { global $CFG_GLPI; - $default_icon = "/plugins/genericobject/pics/default-icon.png"; $itemtype_table = getTableForItemType($itemtype); $itemtype_shortname = preg_replace("/^glpi_plugin_genericobject_/", "", $itemtype_table); $itemtype_icons = glob( @@ -287,7 +298,7 @@ static function getMenuIcon($itemtype) { if (!is_null($icon_found)) { $icon_path = $CFG_GLPI['root_doc'] . $icon_found; } else { - $icon_path = $CFG_GLPI['root_doc'] . $default_icon; + $icon_path = Plugin::getWebDir('genericobject') . "/pics/default-icon.png"; } return "". " $value, @@ -755,32 +767,6 @@ function prepareInputForAdd($input) { } - function post_addItem() { - global $DB; - - // Manage add from template - if (isset($this->input["_oldID"])) { - // ADD Devices - Item_devices::cloneItem($this->getType(), $this->input["_oldID"], $this->fields['id']); - - // ADD Infocoms - Infocom::cloneItem($this->getType(), $this->input["_oldID"], $this->fields['id']); - - // ADD Contract - Contract_Item::cloneItem($this->getType(), $this->input["_oldID"], $this->fields['id']); - - // ADD Documents - Document_Item::cloneItem($this->getType(), $this->input["_oldID"], $this->fields['id']); - - // ADD Ports - NetworkPort::cloneItem($this->getType(), $this->input["_oldID"], $this->fields['id']); - - // Add connected devices - Computer_Item::cloneComputer($this->input["_oldID"], $this->fields['id']); - } - } - - function cleanDBonPurge() { $parameters = ['items_id' => $this->getID(), 'itemtype' => get_called_class()]; $types = ['Computer_Item', 'ReservationItem', 'Document_Item', 'Infocom', 'Contract_Item']; @@ -1002,6 +988,7 @@ function rawSearchOptions() { } break; case "datetime": + case "timestamp": $option['datatype'] = 'datetime'; if ($item->canUsePluginDataInjection()) { //Datainjection specific @@ -1198,6 +1185,9 @@ static function getMenuContent() { foreach ($types as $type) { $itemtype = $type['itemtype']; + if (!class_exists($itemtype)) { + continue; + } $item = new $itemtype(); $itemtype_rightname = PluginGenericobjectProfile::getProfileNameForItemtype($itemtype); @@ -1225,7 +1215,7 @@ static function getMenuContent() { $name = Dropdown::getDropdownName("glpi_plugin_genericobject_typefamilies", $family_id, 0, false); $str_name = strtolower($name); $menu[$str_name]['title'] = Dropdown::getDropdownName("glpi_plugin_genericobject_typefamilies", $family_id); - $menu[$str_name]['page'] = '/plugins/genericobject/front/familylist.php?id='.$family_id; + $menu[$str_name]['page'] = '/'.Plugin::getWebDir('genericobject', false).'/front/familylist.php?id='.$family_id; $menu[$str_name]['options'][strtolower($itemtype)] = [ 'title' => $type['itemtype']::getMenuName(), 'page' => $itemtype::getSearchUrl(false), diff --git a/inc/profile.class.php b/inc/profile.class.php index 3f7a1a75..7910b339 100644 --- a/inc/profile.class.php +++ b/inc/profile.class.php @@ -76,7 +76,7 @@ static function showForItemtype($type) { echo ""; echo ""; - foreach (getAllDatasFromTable(getTableForItemtype("Profile")) as $profile) { + foreach (getAllDataFromTable(getTableForItemtype("Profile")) as $profile) { $prof = new Profile(); $prof->getFromDB($profile['id']); $rights = [ @@ -178,7 +178,7 @@ static function getProfileforItemtype($profiles_id, $itemtype) { function getProfilesFromDB($id, $config = true) { global $DB; $prof_datas = []; - foreach (getAllDatasFromTable(getTableForItemType(__CLASS__), + foreach (getAllDataFromTable(getTableForItemType(__CLASS__), ['profiles_id' => $id]) as $prof) { if ($prof['right'] != "" || $config) { $prof_datas[$prof['itemtype']] = $prof['right']; @@ -267,7 +267,7 @@ public static function profileExists($profiles_id, $itemtype = false) { */ public static function createAccess($profiles_id, $itemtype, $first = false) { - $rights = getAllDatasFromTable('glpi_profiles'); + $rights = getAllDataFromTable('glpi_profiles'); $profile_right = new ProfileRight(); $itemtype_rightname = self::getProfileNameForItemtype($itemtype); @@ -292,12 +292,17 @@ public static function getGeneralRights() { public static function getTypesRights() { $rights = []; - include_once(GLPI_ROOT."/plugins/genericobject/inc/type.class.php"); + include_once(GENERICOBJECT_DIR."/inc/type.class.php"); $types = PluginGenericobjectType::getTypes(true); if (count( $types) > 0) { foreach ($types as $_ => $type) { $itemtype = $type['itemtype']; + + if (!class_exists($itemtype)) { + continue; + } + $field = self::getProfileNameForItemtype($itemtype); $objecttype = new PluginGenericobjectType($itemtype); $rights[] = [ @@ -377,7 +382,7 @@ static function install(Migration $migration) { //Update needed if ($DB->tableExists('glpi_plugin_genericobject_profiles')) { - foreach (getAllDatasFromTable('glpi_plugin_genericobject_profiles') as $right) { + foreach (getAllDataFromTable('glpi_plugin_genericobject_profiles') as $right) { if (preg_match("/PluginGenericobject(.*)/", $right['itemtype'], $results)) { $newrightname = 'plugin_genericobject_'.strtolower($results[1]).'s'; if (!countElementsInTable('glpi_profilerights', diff --git a/inc/singletonobjectfield.class.php b/inc/singletonobjectfield.class.php index f6a90a28..524df01a 100644 --- a/inc/singletonobjectfield.class.php +++ b/inc/singletonobjectfield.class.php @@ -51,7 +51,7 @@ class PluginGenericobjectSingletonObjectField { public static function getInstance($itemtype, $reload = false) { global $DB; if (!isset(self::$_dbfields[$itemtype]) || $reload) { - self::$_dbfields[$itemtype] = $DB->list_fields(getTableForItemType($itemtype)); + self::$_dbfields[$itemtype] = $DB->listFields(getTableForItemType($itemtype)); } return self::$_dbfields[$itemtype]; } diff --git a/inc/type.class.php b/inc/type.class.php index b940fe70..55ea9e60 100644 --- a/inc/type.class.php +++ b/inc/type.class.php @@ -82,7 +82,7 @@ function getFromDBByType($itemtype) { "WHERE `itemtype`='$itemtype'"; $result = $DB->query($query); if ($DB->numrows($result) > 0) { - $this->fields = $DB->fetch_array($result); + $this->fields = $DB->fetchArray($result); } else { $this->getEmpty(); } @@ -102,9 +102,12 @@ function getTabNameForItem(CommonGLPI $item, $withtemplate = 0) { case __CLASS__ : // Number of fields in database $itemtype = $item->fields['itemtype']; - $obj = new $itemtype(); - $obj->getEmpty(); - $nb_fields = count($obj->fields); + $nb_fields = 0; + if (class_exists($itemtype)) { + $obj = new $itemtype(); + $obj->getEmpty(); + $nb_fields = count($obj->fields); + } $tabs = [ 1 => __("Main"), @@ -256,7 +259,7 @@ function pre_deleteItem() { } $prof = new Profile(); - $profiles = getAllDatasFromTable('glpi_profiles'); + $profiles = getAllDataFromTable('glpi_profiles'); foreach ($profiles as $profile) { $helpdesk_item_types = json_decode($profile['helpdesk_item_type'], true); if ($helpdesk_item_types !== null) { @@ -948,8 +951,8 @@ public static function addTable($itemtype) { `name` VARCHAR( 255 ) collate utf8_unicode_ci NOT NULL DEFAULT '', `comment` text COLLATE utf8_unicode_ci, `notepad` text COLLATE utf8_unicode_ci, - `date_mod` DATETIME DEFAULT NULL, - `date_creation` DATETIME DEFAULT NULL, + `date_mod` TIMESTAMP NULL DEFAULT NULL, + `date_creation` TIMESTAMP NULL DEFAULT NULL, PRIMARY KEY ( `id` ), KEY `date_mod` (`date_mod`), KEY `date_creation` (`date_creation`) @@ -974,8 +977,8 @@ public static function addItemsTable($itemtype) { $query = "CREATE TABLE IF NOT EXISTS `".getTableForItemType($itemtype)."_items` ( `id` int(11) NOT NULL AUTO_INCREMENT, `items_id` int(11) NOT NULL DEFAULT '0' COMMENT 'RELATION to various table, according to itemtype (ID)', - `date_mod` DATETIME DEFAULT NULL, - `date_creation` DATETIME DEFAULT NULL, + `date_mod` TIMESTAMP NULL DEFAULT NULL, + `date_creation` TIMESTAMP NULL DEFAULT NULL, `$fk` int(11) NOT NULL DEFAULT '0', `itemtype` varchar(100) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`), @@ -996,29 +999,38 @@ public static function deleteFile($filename) { } - //Form pages static function getCompleteClassFilename($name) { - return GENERICOBJECT_CLASS_PATH . "/".$name.".class.php"; + return GENERICOBJECT_CLASS_PATH . "/".self::getSystemName($name).".class.php"; + } + + + static function getCompleteItemClassFilename($name) { + return GENERICOBJECT_CLASS_PATH . "/".self::getSystemName($name)."_item.class.php"; } static function getCompleteFormFilename($name) { - return GENERICOBJECT_FRONT_PATH . "/".$name.".form.php"; + return GENERICOBJECT_FRONT_PATH . "/".self::getSystemName($name).".form.php"; } static function getCompleteSearchFilename($name) { - return GENERICOBJECT_FRONT_PATH . "/".$name.".php"; + return GENERICOBJECT_FRONT_PATH . "/".self::getSystemName($name).".php"; } static function getCompleteAjaxTabFilename($name) { - return GENERICOBJECT_AJAX_PATH . "/".$name.".tabs.php"; + return GENERICOBJECT_AJAX_PATH . "/".self::getSystemName($name).".tabs.php"; } static function getCompleteInjectionFilename($name) { - return GENERICOBJECT_CLASS_PATH . "/".$name."injection.class.php"; + return GENERICOBJECT_CLASS_PATH . "/".self::getSystemName($name).".injection.class.php"; + } + + + static function getCompleteConstantFilename($name) { + return GENERICOBJECT_FIELDS_PATH . "/".self::getSystemName($name).".constant.php"; } @@ -1059,16 +1071,19 @@ public static function deleteInjectionFile($name) { public static function addLocales($name, $itemtype) { global $CFG_GLPI; - $locale_dir = GENERICOBJECT_LOCALES_PATH."/".$name; + + $fsname = self::getSystemName($name); + + $locale_dir = GENERICOBJECT_LOCALES_PATH."/".$fsname; if (!is_dir($locale_dir)) { @ mkdir($locale_dir, 0755, true); } $locale_files = [ - $name . '.' . $_SESSION['glpilanguage'], + $fsname . '.' . $_SESSION['glpilanguage'], ]; if ($CFG_GLPI['language'] != $_SESSION['glpilanguage']) { - $locale_files[] = $name . '.' . $CFG_GLPI['language']; + $locale_files[] = $fsname . '.' . $CFG_GLPI['language']; } foreach ($locale_files as $locale_file) { @@ -1086,7 +1101,7 @@ public static function addLocales($name, $itemtype) { public static function deleteLocales($name, $itemtype) { - $locale_dir = GENERICOBJECT_LOCALES_PATH."/".$name; + $locale_dir = GENERICOBJECT_LOCALES_PATH."/".self::getSystemName($name); if (file_exists($locale_dir)) { foreach (glob($locale_dir.'/*.php') as $file) { @unlink($file); @@ -1120,26 +1135,28 @@ public static function addDatainjectionFile($name) { self::addFileFromTemplate(['CLASSNAME' => self::getClassByName($name), 'INJECTIONCLASS' => self::getClassByName($name)."Injection"], self::OBJECTINJECTION_TEMPLATE, GENERICOBJECT_CLASS_PATH, - $name."injection.class"); + self::getSystemName($name)."injection.class"); } public static function addDropdownFrontFile($name) { self::addFileFromTemplate(['CLASSNAME' => self::getClassByName($name)], - self::FRONT_DROPDOWN_TEMPLATE, GENERICOBJECT_FRONT_PATH, $name); + self::FRONT_DROPDOWN_TEMPLATE, GENERICOBJECT_FRONT_PATH, + self::getSystemName($name)); } public static function addAjaxFile($name, $field) { self::addFileFromTemplate(['CLASSNAME' => self::getClassByName($name)], - self::AJAX_TEMPLATE, GENERICOBJECT_AJAX_PATH, $name.".tabs"); + self::AJAX_TEMPLATE, GENERICOBJECT_AJAX_PATH, + self::getSystemName($name).".tabs"); } public static function addDropdownFrontformFile($name) { self::addFileFromTemplate(['CLASSNAME' => self::getClassByName($name)], self::FRONTFORM_DROPDOWN_TEMPLATE, GENERICOBJECT_FRONT_PATH, - $name.".form"); + self::getSystemName($name).".form"); } @@ -1156,7 +1173,7 @@ public static function addDropdownClassFile($name, $field, $options) { 'PluginGenericobject' . ($params['is_tree']?'CommonTree':'Common') . 'Dropdown', 'FIELDNAME' => $params['realname'], 'LINKED_ITEMTYPE' => $params['linked_itemtype'] - ], self::CLASS_DROPDOWN_TEMPLATE, GENERICOBJECT_CLASS_PATH, $name.".class"); + ], self::CLASS_DROPDOWN_TEMPLATE, GENERICOBJECT_CLASS_PATH, self::getSystemName($name).".class"); } @@ -1169,7 +1186,8 @@ public static function addDropdownClassFile($name, $field, $options) { */ public static function addClassFile($name, $classname) { self::addFileFromTemplate(['CLASSNAME' => self::getClassByName($name)], - self::CLASS_TEMPLATE, GENERICOBJECT_CLASS_PATH, $name.".class"); + self::CLASS_TEMPLATE, GENERICOBJECT_CLASS_PATH, + self::getSystemName($name).".class"); } /** @@ -1184,7 +1202,8 @@ public static function addItemClassFile($name, $classname) { self::addFileFromTemplate(['CLASSNAME' => $class, 'FOREIGNKEY' => getForeignKeyFieldForItemType($classname), 'SOURCEOBJECT' => $classname], - self::OBJECTITEM_TEMPLATE, GENERICOBJECT_CLASS_PATH, $name."_item.class"); + self::OBJECTITEM_TEMPLATE, GENERICOBJECT_CLASS_PATH, + self::getSystemName($name)."_item.class"); } /** @@ -1196,7 +1215,8 @@ public static function addItemClassFile($name, $classname) { */ public static function addFormFile($name, $classname) { self::addFileFromTemplate(['CLASSNAME' => self::getClassByName($name)], - self::FORM_TEMPLATE, GENERICOBJECT_FRONT_PATH, $name.".form"); + self::FORM_TEMPLATE, GENERICOBJECT_FRONT_PATH, + self::getSystemName($name).".form"); } @@ -1209,7 +1229,8 @@ public static function addFormFile($name, $classname) { */ public static function addSearchFile($name, $classname) { self::addFileFromTemplate(['CLASSNAME' => self::getClassByName($name)], - self::SEARCH_TEMPLATE, GENERICOBJECT_FRONT_PATH, $name); + self::SEARCH_TEMPLATE, GENERICOBJECT_FRONT_PATH, + self::getSystemName($name)); } @@ -1224,21 +1245,22 @@ static function checkClassAndFilesForItemType() { global $DB; foreach (self::getTypes(true) as $type) { - //ensure old files has been removed - if (file_exists(GENERICOBJECT_DIR . "/inc/{$type['name']}.class.php")) { - unlink(GENERICOBJECT_CLASS_PATH . "/inc/{$type['name']}.class.php"); + //ensure old files has been removed, + $fsname = self::getSystemName($type['name']); + if (file_exists(GENERICOBJECT_DIR . "/inc/{$fsname}.class.php")) { + unlink(GENERICOBJECT_DIR . "/inc/{$fsname}.class.php"); } - if (file_exists(GENERICOBJECT_DIR . "/front/{$type['name']}.form.php")) { - unlink(GENERICOBJECT_DIR . "/front/{$type['name']}.form.php"); + if (file_exists(GENERICOBJECT_DIR . "/front/{$fsname}.form.php")) { + unlink(GENERICOBJECT_DIR . "/front/{$fsname}.form.php"); } - if (file_exists(GENERICOBJECT_DIR . "/front/{$type['name']}.php")) { - unlink(GENERICOBJECT_DIR . "/front/{$type['name']}.form.php"); + if (file_exists(GENERICOBJECT_DIR . "/front/{$fsname}.php")) { + unlink(GENERICOBJECT_DIR . "/front/{$fsname}.form.php"); } - if (file_exists(GENERICOBJECT_DIR . "/ajax/{$type['name']}.tabs.php")) { - unlink(GENERICOBJECT_DIR . "/ajax/{$type['name']}.tabs.php"); + if (file_exists(GENERICOBJECT_DIR . "/ajax/{$fsname}.tabs.php")) { + unlink(GENERICOBJECT_DIR . "/ajax/{$fsname}.tabs.php"); } - if (file_exists(GENERICOBJECT_DIR . "/inc/{$type['name']}.injection.class.php")) { - unlink(GENERICOBJECT_DIR . "/inc/{$type['name']}.injection.class.php"); + if (file_exists(GENERICOBJECT_DIR . "/inc/{$fsname}.injection.class.php")) { + unlink(GENERICOBJECT_DIR . "/inc/{$fsname}.injection.class.php"); } self::checkClassAndFilesForOneItemType($type['itemtype'], $type['name'], true, false); @@ -1267,7 +1289,7 @@ static function checkClassAndFilesForOneItemType($itemtype, $name, $overwrite = 'overwrite_locales' => $overwrite_locales ]); } - foreach ($DB->list_fields($table) as $field => $options) { + foreach ($DB->listFields($table) as $field => $options) { if (preg_match("/s_id$/", $field)) { $dropdowntable = getTableNameForForeignKeyField($field); $dropdownclass = getItemTypeForTable($dropdowntable); @@ -1281,7 +1303,7 @@ static function checkClassAndFilesForOneItemType($itemtype, $name, $overwrite = ) { $params['linked_itemtype'] = $itemtype; } - self::addNewDropdown($name, 'PluginGenericobject'.ucfirst($name), $params); + self::addNewDropdown($name, self::getClassByName($name), $params); } } } @@ -1303,7 +1325,7 @@ static function deleteItemTypeFilesAndClasses($name, $table, $itemtype) { ]); //Delete files related to dropdowns - foreach ($DB->list_fields($table) as $field => $options) { + foreach ($DB->listFields($table) as $field => $options) { if (preg_match("/plugin_genericobject_(.*)_id/", $field, $results)) { $table = getTableNameForForeignKeyField($field); @@ -1380,8 +1402,8 @@ public static function addDropdownTable($table, $options = []) { `id` int(11) NOT NULL auto_increment, `name` varchar(255) collate utf8_unicode_ci default NULL, `comment` text collate utf8_unicode_ci, - `date_mod` DATETIME DEFAULT NULL, - `date_creation` DATETIME NOT NULL, + `date_mod` TIMESTAMP NULL DEFAULT NULL, + `date_creation` TIMESTAMP NOT NULL, PRIMARY KEY (`id`), KEY `date_mod` (`date_mod`), KEY `date_creation` (`date_creation`), @@ -1597,18 +1619,37 @@ static function filterInput($value) { } + /** + * Get the object system name (for files and itemtype), by giving the name + * + * @param string $name + * + * @return string + */ + static function getSystemName($name) { + // Force filtering of name (will have no effect if already done). + $name = self::filterInput($name); + + // Replace numbers by letters + return str_replace( + ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], + ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'], + $name + ); + } + /** * Get the object class, by giving the name * @param name the object's internal identifier * @return the class associated with the object */ static function getClassByName($name) { - return 'PluginGenericobject' . ucfirst($name); + return 'PluginGenericobject' . ucfirst(self::getSystemName($name)); } static function getFamilyNameByItemtype($itemtype) { - $types = getAllDatasFromTable("glpi_plugin_genericobject_types", + $types = getAllDataFromTable("glpi_plugin_genericobject_types", ['itemtype' => $itemtype, 'is_active' => 1]); if (empty($types)) { return false; @@ -1624,29 +1665,6 @@ static function getFamilyNameByItemtype($itemtype) { } } - /** - * Ensure names are singular at upgrade - * - * @return void - */ - static function singularTypes() { - global $DB; - $table = getTableForItemType(__CLASS__); - if ($DB->tableExists($table)) { - $query = "SELECT id, name, itemtype FROM $table"; - foreach ($DB->query($query) as $data) { - $singularname = self::filterInput($data['name']); - $singulartype = getSingular($data['itemtype']); - if ($data['name'] != $singularname || $data['itemtype'] != $singulartype) { - //do not use objects here to prevent pre/post issues - $update = "UPDATE $table SET name='$singularname', itemtype='$singulartype' WHERE id={$data['id']}"; - $DB->query($update); - self::deleteFilesAndClassesForOneItemtype($data['name']); - } - } - } - } - /** * Get all types of active&published objects */ @@ -1655,7 +1673,14 @@ static function getTypes($all = false) { $table = getTableForItemType(__CLASS__); if ($DB->tableExists($table)) { $mytypes = []; - foreach (getAllDatasFromTable($table, (!$all ? ['is_active' => self::ACTIVE] : []), false, 'name') as $data) { + $all_types = getAllDataFromTable( + $table, + [ + 'WHERE' => !$all ? ['is_active' => self::ACTIVE] : [], + 'ORDER' => 'name', + ] + ); + foreach ($all_types as $data) { //If class is not present on the filesystem, do not list itemtype $mytypes[$data['itemtype']] = $data; } @@ -1674,9 +1699,9 @@ static function getTypesByFamily($all = false) { $table = getTableForItemType(__CLASS__); if ($DB->tableExists($table)) { $mytypes = []; - foreach (getAllDatasFromTable($table, (!$all ? ['is_active' => self::ACTIVE] : [])) as $data) { + foreach (getAllDataFromTable($table, (!$all ? ['is_active' => self::ACTIVE] : [])) as $data) { //If class is not present on the filesystem, do not list itemtype - if (file_exists(GENERICOBJECT_CLASS_PATH."/".$data['name'].".class.php")) { + if (file_exists(self::getCompleteClassFilename($data['name']))) { $mytypes[$data['plugin_genericobject_typefamilies_id']][$data['itemtype']] = $data; } } @@ -1707,7 +1732,9 @@ static function registerOneType($itemtype) { static function includeLocales($name) { global $CFG_GLPI,$LANG; - $prefix = GENERICOBJECT_LOCALES_PATH . "/$name/$name"; + $fsname = self::getSystemName($name); + + $prefix = GENERICOBJECT_LOCALES_PATH . "/$fsname/$fsname"; //Dirty hack because the plugin doesn't support gettext... $language= str_replace('.mo', '', $CFG_GLPI["languages"][$_SESSION["glpilanguage"]][1]); if (isset ($_SESSION["glpilanguage"]) @@ -1730,7 +1757,8 @@ static function includeLocales($name) { static function includeConstants($name, $force = false) { - $file = GENERICOBJECT_FIELDS_PATH . "/$name.constant.php"; + + $file = self::getCompleteConstantFilename($name); if (file_exists($file)) { if (!$force) { include_once($file); @@ -1979,8 +2007,8 @@ static function install(Migration $migration) { `is_active` tinyint(1) NOT NULL default '0', `name` varchar(255) collate utf8_unicode_ci default NULL, `comment` text NULL, - `date_mod` datetime DEFAULT NULL, - `date_creation` datetime DEFAULT NULL, + `date_mod` TIMESTAMP NULL DEFAULT NULL, + `date_creation` TIMESTAMP NULL DEFAULT NULL, `use_global_search` tinyint(1) NOT NULL default '0', `use_unicity` tinyint(1) NOT NULL default '0', `use_history` tinyint(1) NOT NULL default '0', @@ -2015,16 +2043,19 @@ static function install(Migration $migration) { $migration->addField($table, "use_projects", "bool"); $migration->addField($table, "use_notepad", "bool"); $migration->addField($table, "comment", "text"); - if (!$migration->addField($table, "date_mod", "datetime")) { - $migration->changeField($table, "date_mod", "date_mod", "datetime"); + if (!$migration->addField($table, "date_mod", "timestamp")) { + $migration->changeField($table, "date_mod", "date_mod", "timestamp"); } - $migration->addField($table, "date_creation", "datetime"); + $migration->addField($table, "date_creation", "timestamp"); $migration->addField($table, "linked_itemtypes", "text"); $migration->addField($table, "plugin_genericobject_typefamilies_id", "integer"); $migration->addField($table, "use_plugin_simcard", "bool"); $migration->addField($table, "use_plugin_treeview", "bool"); $migration->migrationOneTable($table); + //Normalize names and itemtypes (prior to using them). + self::normalizeNamesAndItemtypes($migration); + //If files are missing, recreate them! self::checkClassAndFilesForItemType(); @@ -2081,8 +2112,6 @@ static function install(Migration $migration) { $preference->add($tmp); } } - - self::singularTypes(); } @@ -2103,4 +2132,252 @@ static function uninstall() { $query = "DROP TABLE IF EXISTS `glpi_plugin_genericobject_types`"; $DB->query($query) or die($DB->error()); } + + + static function getIcon() { + return "fas fa-car"; + } + + /** + * Normalize itemtype and name for all types. + * This method will ensure that new normalization rules will be taken into account + * during migration from an old version without loosing existing data. + * + * @param Migration $migration + * @return void + */ + private static function normalizeNamesAndItemtypes(Migration $migration) { + global $DB; + $DB->disableTableCaching(); + + $types_iterator = $DB->request( + [ + 'FROM' => self::getTable(), + 'ORDER' => 'name', + ] + ); + + foreach ($types_iterator as $type) { + $old_name = $type['name']; + $new_name = self::filterInput($old_name); + $old_itemtype = $type['itemtype']; + $new_itemtype = self::getClassByName($new_name); + + if ($old_name == $new_name && $old_itemtype == $new_itemtype) { + continue; + } + + self::updateNameAndItemtype( + $migration, + $old_name, + $new_name, + $old_itemtype, + $new_itemtype + ); + + $DB->update( + self::getTable(), + [ + 'name' => $new_name, + 'itemtype' => $new_itemtype, + ], + ['id' => $type['id']] + ); + + $DB->update( + self::getTable(), + [ + 'linked_itemtypes' => new \QueryExpression( + 'REPLACE(' + . $DB->quoteName('linked_itemtypes') + . ',' + . $DB->quoteValue('"' . $old_itemtype .'"') // itemtype is surrounded by quotes + . ',' + . $DB->quoteValue('"' . $new_itemtype .'"') // itemtype is surrounded by quotes + . ')' + ), + ], + ['linked_itemtypes' => ['LIKE', '%"' . $old_itemtype . '"%']] + ); + + // Handle dropdowns related to itemtype + $table = getTableForItemType($new_itemtype); + $fields = $DB->listFields($table); + foreach ($fields as $field => $options) { + if (preg_match("/s_id$/", $field)) { + $dropdown_old_table = getTableNameForForeignKeyField($field); + + if (!preg_match('/^glpi_plugin_genericobject_/', $dropdown_old_table)) { + continue; + } + + $dropdown_old_name = getSingular( + str_replace( + "glpi_plugin_genericobject_", + "", + $dropdown_old_table + ) + ); + $dropdown_old_itemtype = 'PluginGenericobject' . ucfirst($dropdown_old_name); + $dropdown_new_name = self::filterInput($dropdown_old_name); + $dropdown_new_itemtype = self::getClassByName($dropdown_new_name); + + if ($dropdown_old_name == $dropdown_new_name + && $dropdown_old_itemtype == $dropdown_new_itemtype) { + continue; + } + + self::updateNameAndItemtype( + $migration, + $dropdown_old_name, + $dropdown_new_name, + $dropdown_old_itemtype, + $dropdown_new_itemtype + ); + } + } + } + + ProfileRight::cleanAllPossibleRights(); // Clean all possible rights are their name may have change + } + + /** + * Update itemtype and/or name for a given itemtype. + * + * @param Migration $migration + * @param string $old_name Current type name in database + * @param string $new_name New type name to use + * @param string $old_itemtype Current itemtype + * @param string $new_itemtype New itemtype to use + * + * @return void + */ + private static function updateNameAndItemtype(Migration $migration, $old_name, $new_name, + $old_itemtype, $new_itemtype) { + + global $DB; + + if ($old_itemtype != $new_itemtype) { + $migration->renameItemtype($old_itemtype, $new_itemtype); + $migration->executeMigration(); // Execute migration to flush updates on tables that may be renamed + } + + $destination_files = []; + + $old_systemname = $old_name; // Old system name was same as name in DB + $new_systemname = self::getSystemName($new_name); + $old_fkey = getForeignKeyFieldForItemType($old_itemtype); + $new_fkey = getForeignKeyFieldForItemType($new_itemtype); + $old_locale_dir = GENERICOBJECT_LOCALES_PATH . '/' . $old_systemname; + $new_locale_dir = GENERICOBJECT_LOCALES_PATH . '/' . $new_systemname; + + $destination_files = [ + self::getCompleteClassFilename($new_name), + self::getCompleteItemClassFilename($new_name), + self::getCompleteFormFilename($new_name), + self::getCompleteSearchFilename($new_name), + self::getCompleteAjaxTabFilename($new_name), + self::getCompleteInjectionFilename($new_name), + self::getCompleteConstantFilename($new_name), + ]; + + // Rename locale folder and map files + if (is_dir($old_locale_dir) && $old_locale_dir != $new_locale_dir) { + if (rename($old_locale_dir, $new_locale_dir)) { + // Add all locale files to destination files + foreach (glob($new_locale_dir . '/*.php') as $old_filename) { + $destination_files[] = preg_replace( + '/(.*\/)' . preg_quote($old_systemname, '/') . '([^\/]*)$/', + '$1' . $new_systemname . '$2', + $old_filename + ); + } + } else { + $migration->displayWarning( + sprintf('Unable to rename "%s" locale directory to "%s"', $old_locale_dir, $new_locale_dir), + true + ); + } + } + + // Handle *_item class table/itemtype + if ($DB->tableExists(getTableForItemType($old_itemtype . '_Item'))) { + $migration->renameItemtype($old_itemtype . '_Item', $new_itemtype . '_Item'); + $migration->executeMigration(); // Execute migration to flush updates on tables that may be renamed + } + + // Add all constant files as they may contains foreign keys to update + foreach (glob(GENERICOBJECT_FIELDS_PATH . '/*.php') as $constant_filename) { + $destination_files[] = $constant_filename; + } + + // Rename files (replace "/{$old name}*" by "/{$new_system_name}*") + $migration->displayMessage( + sprintf('Rename files related to "%s" itemtype and update their content', $old_itemtype), + true + ); + foreach ($destination_files as $new_filename) { + $old_filename = preg_replace( + '/(.*\/)' . preg_quote($new_systemname, '/') . '([^\/]*)$/', + '$1' . $old_systemname . '$2', + $new_filename + ); + + if (!file_exists($old_filename)) { + // Do nothing if old file does not exists + continue; + } + + if ($old_filename != $new_filename) { + if (!rename($old_filename, $new_filename)) { + $migration->displayWarning( + sprintf('Unable to rename "%s" file to "%s"', $old_filename, $new_filename), + true + ); + continue; + } + } else { + $migration->displayMessage( + sprintf('Update "%s" file content', $old_filename), + true + ); + } + + $file_contents = file_get_contents($new_filename); + if (!$file_contents) { + $migration->displayWarning( + sprintf('Unable to read "%s" file contents', $new_filename), + true + ); + continue; + } + + $replace_count = 0; + $old_fkey_truncated = preg_replace('/^plugin_genericobject_/', '', $old_fkey); + $new_fkey_truncated = preg_replace('/^plugin_genericobject_/', '', $new_fkey); + $file_contents = str_replace( + [$old_itemtype, $old_fkey, $old_fkey_truncated], + [$new_itemtype, $new_fkey, $new_fkey_truncated], + $file_contents, + $replace_count + ); + if ($replace_count > 0 && !file_put_contents($new_filename, $file_contents)) { + $migration->displayWarning( + sprintf('Unable to update "%s" file contents', $new_filename), + true + ); + } + } + + // Update profile rights + if ($old_itemtype != $new_itemtype) { + $migration->addPostQuery( + $DB->buildUpdate( + ProfileRight::getTable(), + ['name' => PluginGenericobjectProfile::getProfileNameForItemtype($new_itemtype)], + ['name' => PluginGenericobjectProfile::getProfileNameForItemtype($old_itemtype)] + ) + ); + } + } } diff --git a/inc/typefamily.class.php b/inc/typefamily.class.php index 963bc0cc..8f682a72 100644 --- a/inc/typefamily.class.php +++ b/inc/typefamily.class.php @@ -45,8 +45,8 @@ static function install(Migration $migration) { `id` INT( 11 ) NOT NULL AUTO_INCREMENT, `name` varchar(255) collate utf8_unicode_ci default NULL, `comment` text NULL, - `date_mod` DATETIME DEFAULT NULL, - `date_creation` DATETIME DEFAULT NULL, + `date_mod` TIMESTAMP NULL DEFAULT NULL, + `date_creation` TIMESTAMP NULL DEFAULT NULL, PRIMARY KEY (`id`), KEY `date_mod` (`date_mod`), KEY `date_creation` (`date_creation`) @@ -87,7 +87,7 @@ static function getFamilies() { static function getItemtypesByFamily($families_id) { - return getAllDatasFromTable( + return getAllDataFromTable( 'glpi_plugin_genericobject_types', [ 'plugin_genericobject_typefamilies_id' => $families_id, diff --git a/locales/cs_CZ.mo b/locales/cs_CZ.mo index aba3d2ca..5041726a 100644 Binary files a/locales/cs_CZ.mo and b/locales/cs_CZ.mo differ diff --git a/locales/cs_CZ.po b/locales/cs_CZ.po index 8440abf9..3f35d3ec 100644 --- a/locales/cs_CZ.po +++ b/locales/cs_CZ.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Genericobject\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" "PO-Revision-Date: 2019-11-09 06:06+0000\n" "Last-Translator: Pavel Borecki \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/cs_CZ/)\n" @@ -19,16 +19,25 @@ msgstr "" "Language: cs_CZ\n" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Správa objektů" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "Prázdná rodina" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "Typ objektů" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "Správa objektů" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "Požadovaná rozbalovací nabídka neexistuje" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -38,14 +47,9 @@ msgstr "Kolonky úspěšně smazány" msgid "Field added successfully" msgstr "Kolonka úspěšně přidána" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "Požadovaná rozbalovací nabídka neexistuje" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" -msgstr "Prázdná rodina" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "Rodina typu objektů" #: inc/profile.class.php:141 msgid "General" @@ -59,113 +63,109 @@ msgstr "Objekty" msgid "(No types defined yet)" msgstr "(Doposud nebyly určené žádné typy)" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "Kolonky přiřazené k objektu" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "Štítek" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "Název v databázi" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "Přidat novou kolonku" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "Kolonka pouze pro čtení" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "Název typu chybí" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "Je třeba, aby název typu byl delší" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "Typy „field“ (kolonka), „object“ (objekt) a „type“ (typ) jsou vyhrazené (už je nemůžete použít). Zvolte jiný" -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "Je třeba, aby typ začínal písmenem" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "Typ se stejným názvem už existuje" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "Rodina typu objektů" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "Vnitřní identifikátor" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "Chování" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "Síťová připojení" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "zásuvný modul vkládání souborů" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "zásuvný modul vytváření inventárních čísel" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "zásuvný modul správa objednávek" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "zásuvný modul odinstalace položek" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "zásuvný modul sim karty" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "zásuvný modul stromového pohledu" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "Znovu vytvořit soubory" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "Propojit s ostatními objekty" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "Nedaří se načíst třídu %1$s." #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "Nejspíš ve své databázi máte pro tento modul v nepořádku data a chybí soubory v %1$s" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "Náhled objektu" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "Pro zapnutí náhledu je třeba nastavit oprávnění" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "Kolonky přiřazené k objektu" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Štítek" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Název v databázi" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Přidat novou kolonku" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "Kolonka pouze pro čtení" diff --git a/locales/en_GB.mo b/locales/en_GB.mo index 57185ca0..dea899dd 100644 Binary files a/locales/en_GB.mo and b/locales/en_GB.mo differ diff --git a/locales/en_GB.po b/locales/en_GB.po index 4978698e..b8187875 100644 --- a/locales/en_GB.po +++ b/locales/en_GB.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" -"PO-Revision-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" +"PO-Revision-Date: 2020-07-03 18:57+0000\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: en_GB\n" @@ -17,16 +17,25 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Objects management" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "Empty family" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "Type of objects" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "Objects management" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "The requested dropdown does not exists" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -36,14 +45,9 @@ msgstr "Field(s) deleted successfully" msgid "Field added successfully" msgstr "Field added successfully" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "The requested dropdown does not exists" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" -msgstr "Empty family" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "Family of type of objects" #: inc/profile.class.php:141 msgid "General" @@ -57,104 +61,80 @@ msgstr "Objects" msgid "(No types defined yet)" msgstr "(No types defined yet)" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "Fields associated with the object" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "Label" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "Name in DB" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "Add new field" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "Read-only field" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "Type name is missing" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "Type name must be longer" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "Type must start with a letter" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "A type already exists with the same name" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "Family of type of objects" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "Internal identifier" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "Behaviour" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "Network connections" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "injection file plugin" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "geninventorynumber plugin" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "order plugin" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "item's uninstallation plugin" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "simcard plugin" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "treeview plugin" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "Regenerate files" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "Link to other objects" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "Unable to load the class %1$s." #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " @@ -163,10 +143,30 @@ msgstr "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "Object preview" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "You must configure rights to enable the preview" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "Fields associated with the object" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Label" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Name in DB" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Add new field" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "Read-only field" diff --git a/locales/es_AR.mo b/locales/es_AR.mo index 3d84ed7e..01da59ff 100644 Binary files a/locales/es_AR.mo and b/locales/es_AR.mo differ diff --git a/locales/es_ES.mo b/locales/es_ES.mo index faf4789b..dcd7407b 100644 Binary files a/locales/es_ES.mo and b/locales/es_ES.mo differ diff --git a/locales/es_ES.po b/locales/es_ES.po index 5ae4ee18..cfe1b471 100644 --- a/locales/es_ES.po +++ b/locales/es_ES.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Genericobject\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" "PO-Revision-Date: 2019-11-08 14:59+0000\n" "Last-Translator: Cédric Anne\n" "Language-Team: Spanish (Spain) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/es_ES/)\n" @@ -18,16 +18,25 @@ msgstr "" "Language: es_ES\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Gestión de objetos" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "Familia vacía" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "Tipo de objetos" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "Gestión de objetos" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "La lista desplegable requerida no existe" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -37,14 +46,9 @@ msgstr "Campo(s) suprimido(s) correctamente" msgid "Field added successfully" msgstr "El campo fue añadido correctamente" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "La lista desplegable requerida no existe" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" -msgstr "Familia vacía" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "Familia de tipos de objetos" #: inc/profile.class.php:141 msgid "General" @@ -58,113 +62,109 @@ msgstr "Objetos" msgid "(No types defined yet)" msgstr "" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "Campos asociados al objeto" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "Término" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "Nombre en base de datos" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "Añadir un campo nuevo" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "Nombre de tipo es obligatorio" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "Los nombres de tipo 'field', 'object' y 'type' son reservados. Tiene que elegir otro nombre" -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "El nombre de tipo tiene que empezar con una letra" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "Un tipo de objeto ya existe con el mismo nombre" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "Familia de tipos de objetos" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "Identificador interno" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "Comportamiento" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "Conexiones de red" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "complemento Injection file" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "complemento Geninventorynumber" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "complemento Gestión de pedidos" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "complemento Item's uninstallation" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "Generar de nuevo los ficheros" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "Enlace con otros objetos" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "Vista previa del objeto" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "Tiene que configurar los permisos para acceder a la vista previa" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "Campos asociados al objeto" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Término" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Nombre en base de datos" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Añadir un campo nuevo" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "" diff --git a/locales/fi_FI.mo b/locales/fi_FI.mo index b910b928..5a4f70cf 100644 Binary files a/locales/fi_FI.mo and b/locales/fi_FI.mo differ diff --git a/locales/fi_FI.po b/locales/fi_FI.po index 8651398e..a938dc65 100644 --- a/locales/fi_FI.po +++ b/locales/fi_FI.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Genericobject\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" "PO-Revision-Date: 2019-11-08 14:59+0000\n" "Last-Translator: Cédric Anne\n" "Language-Team: Finnish (Finland) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/fi_FI/)\n" @@ -18,16 +18,25 @@ msgstr "" "Language: fi_FI\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Kohteiden hallinta" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "Tyhjä perhe" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "Kohteiden tyyppi" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "Kohteiden hallinta" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "Pyydettyä alasvetovalikkoa ei ole olemassa" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -37,14 +46,9 @@ msgstr "Kenttä/kentät poistettu onnistuneesti" msgid "Field added successfully" msgstr "Kenttä lisätty onnistuneesti" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "Pyydettyä alasvetovalikkoa ei ole olemassa" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" -msgstr "Tyhjä perhe" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "Kohteiden tyypin perhe" #: inc/profile.class.php:141 msgid "General" @@ -58,113 +62,109 @@ msgstr "Kohteet" msgid "(No types defined yet)" msgstr "(Tyyppejä ei ole vielä määritelty)" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "Kohteeseen liittyvät kentät" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "Etiketti" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "Nimi tietokannassa" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "Lisää uusi kenttä" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "Vain luku kenttä" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "Tyyppinimi puuttuu" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "Tyyppinimen on oltava pidempi" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "Tyypit \"kenttä\", \"kohde\" ja \"tyyppi\" ovat varattuja. Valitse joku toinen" -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "Tyypin täytyy alkaa kirjaimella" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "Samanniminen tyyppi on jo olemassa" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "Kohteiden tyypin perhe" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "Sisäinen tunniste" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "Käyttäytyminen" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "Verkkoyhteydet" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "Tiedoston tuonti -liitännäinen" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "Inventaarinumeron luonti liitännäinen" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "Tilaus -liitännäinen" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "Kohteen poisto -liitännäinen" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "SIM-kortti -liitännäinen" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "Luo tiedostot uudelleen" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "Linkki muihin kohteisiin" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "Ei voida ladata luokkaa %1$s." #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "Tietokannassa on ongelma liittyen liitännäiseen ja puuttuvia tiedostoja %1$s" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "Kohteen esikatselu" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "Oikeudet on määritettävä, jotta esikatselu voidaan ottaa käyttöön" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "Kohteeseen liittyvät kentät" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Etiketti" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Nimi tietokannassa" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Lisää uusi kenttä" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "Vain luku kenttä" diff --git a/locales/fr_CA.mo b/locales/fr_CA.mo index d8611a6a..742897bd 100644 Binary files a/locales/fr_CA.mo and b/locales/fr_CA.mo differ diff --git a/locales/fr_CA.po b/locales/fr_CA.po index 64953bb1..43efe475 100644 --- a/locales/fr_CA.po +++ b/locales/fr_CA.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Tiago Graca, 2020 msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Genericobject\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" -"PO-Revision-Date: 2019-11-08 14:59+0000\n" -"Last-Translator: Cédric Anne\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" +"PO-Revision-Date: 2020-06-09 02:45+0000\n" +"Last-Translator: Tiago Graca\n" "Language-Team: French (Canada) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/fr_CA/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,16 +18,25 @@ msgstr "" "Language: fr_CA\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Gestion d'objets" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "Famille vide" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "Types d'objets" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "Gestion d'objets" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "L'intitulé demandé n'existe pas" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -36,14 +46,9 @@ msgstr "Champ(s) supprimé(s) avec succès" msgid "Field added successfully" msgstr "Champ ajouté avec succès" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "L'intitulé demandé n'existe pas" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" -msgstr "Famille vide" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "Famille" #: inc/profile.class.php:141 msgid "General" @@ -57,113 +62,109 @@ msgstr "Objets" msgid "(No types defined yet)" msgstr "(Aucun type déjà défini)" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "Champs associés à l'objet" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "Libellé" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "Nom en base de données" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "Ajout d'un nouveau champ" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "Champ en lecture seule" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "Nom du type manquant" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "Le nom du type doit être plus long" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "Les types 'field', 'object' et 'type' sont réservés. Veuillez en choisir un autre" -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "Le type doit commencer par une lettre" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "Un type avec le même nom existe déjà" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "Famille" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "Identifiant interne" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "Comportement" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "Connexions réseaux" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "Plugin injection de fichiers" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "Plugin génération des numéros d'inventaire" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "Plugin gestion des commandes" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "Plugin de désinstallation des éléments" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "Plugin carte SIM" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" -msgstr "" +msgstr "plugin arborescence" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "Regénérer les fichiers" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "Liaison avec d'autres objets" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "Impossible de charger la classe %1$s" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "Vous avez probablement d'anciennes données dans votre base de données pour ce plugin et des fichiers sont manquants dans %1$s" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "Prévisualisation d'un objet de ce type" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "Vous devez configurer les droits sur cet objet pour voir la prévisualisation" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "Champs associés à l'objet" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Libellé" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Nom en base de données" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Ajout d'un nouveau champ" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "Champ en lecture seule" diff --git a/locales/fr_FR.mo b/locales/fr_FR.mo index 2599b280..92931b81 100644 Binary files a/locales/fr_FR.mo and b/locales/fr_FR.mo differ diff --git a/locales/fr_FR.po b/locales/fr_FR.po index 09ac69e6..905d44a8 100644 --- a/locales/fr_FR.po +++ b/locales/fr_FR.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Genericobject\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" "PO-Revision-Date: 2019-11-08 14:59+0000\n" "Last-Translator: Cédric Anne\n" "Language-Team: French (France) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/fr_FR/)\n" @@ -23,16 +23,25 @@ msgstr "" "Language: fr_FR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Gestion d'objets" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "Famille vide" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "Types d'objets" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "Gestion d'objets" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "L'intitulé demandé n'existe pas" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -42,14 +51,9 @@ msgstr "Champ(s) supprimé(s) avec succès" msgid "Field added successfully" msgstr "Champ ajouté avec succès" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "L'intitulé demandé n'existe pas" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" -msgstr "Famille vide" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "Famille" #: inc/profile.class.php:141 msgid "General" @@ -63,113 +67,109 @@ msgstr "Objets" msgid "(No types defined yet)" msgstr "(Aucun type déjà défini)" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "Champs associés à l'objet" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "Libellé" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "Nom en base de données" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "Ajout d'un nouveau champ" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "Champ en lecture seule" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "Nom du type manquant" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "Le nom du type doit être plus long" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "Les types 'field', 'object' et 'type' sont réservés. Veuillez en choisir un autre" -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "Le type doit commencer par une lettre" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "Un type avec le même nom existe déjà" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "Famille" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "Identifiant interne" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "Comportement" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "Connexions réseaux" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "Plugin injection de fichiers" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "Plugin génération des numéros d'inventaire" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "Plugin gestion des commandes" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "Plugin de désinstallation des matériels" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "Plugin carte SIM" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "Regénérer les fichiers" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "Liaison avec d'autres objets" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "Impossible de charger la classe %1$s" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "Vous avez probablement d'anciennes données dans votre base pour ce plugin ou des fichiers manquants dans %1$s" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "Prévisualisation d'un objet de ce type" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "Vous devez configurer les droits sur cet objet pour voir la prévisualisation" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "Champs associés à l'objet" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Libellé" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Nom en base de données" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Ajout d'un nouveau champ" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "Champ en lecture seule" diff --git a/locales/genericobject.pot b/locales/genericobject.pot index bde74fa9..d4efa4d4 100644 --- a/locales/genericobject.pot +++ b/locales/genericobject.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,15 +17,24 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" msgstr "" #: front/field.form.php:41 @@ -36,13 +45,8 @@ msgstr "" msgid "Field added successfully" msgstr "" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" msgstr "" #: inc/profile.class.php:141 @@ -57,113 +61,109 @@ msgstr "" msgid "(No types defined yet)" msgstr "" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "" -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "" diff --git a/locales/hr_HR.mo b/locales/hr_HR.mo new file mode 100644 index 00000000..cb9e99e0 Binary files /dev/null and b/locales/hr_HR.mo differ diff --git a/locales/hr_HR.po b/locales/hr_HR.po new file mode 100644 index 00000000..06683277 --- /dev/null +++ b/locales/hr_HR.po @@ -0,0 +1,170 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# milotype , 2020 +msgid "" +msgstr "" +"Project-Id-Version: GLPI Plugin - Genericobject\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" +"PO-Revision-Date: 2020-02-12 13:54+0000\n" +"Last-Translator: milotype \n" +"Language-Team: Croatian (Croatia) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/hr_HR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hr_HR\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Upravljanje objektima" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "Prazna obitelji" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 +#: inc/type.class.php:66 +msgid "Type of objects" +msgstr "Vrste objekata" + +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "Traženi padajući popis ne postoji" + +#: front/field.form.php:41 +msgid "Field(s) deleted successfully" +msgstr "Polja uspješno uklonjena" + +#: front/field.form.php:51 +msgid "Field added successfully" +msgstr "Polje uspješno dodano" + +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "Obitelj vrste objekata" + +#: inc/profile.class.php:141 +msgid "General" +msgstr "Opće" + +#: inc/profile.class.php:147 +msgid "Objects" +msgstr "Objekti" + +#: inc/profile.class.php:149 +msgid "(No types defined yet)" +msgstr "(Vrste još nisu određene)" + +#: inc/type.class.php:156 +msgid "Type name is missing" +msgstr "Ime vrste nedostaje" + +#: inc/type.class.php:162 +msgid "Type name must be longer" +msgstr "Ime vrste mora biti duže" + +#: inc/type.class.php:168 +msgid "" +"Types 'field', 'object' and 'type' are reserved. Please choose another one" +msgstr "„Polje”, „objekt” i „vrsta” su rezervirane vrste. Odaberi neku drugu" + +#: inc/type.class.php:175 +msgid "Type must start with a letter" +msgstr "Vrsta mora početi slovom" + +#: inc/type.class.php:182 +msgid "A type already exists with the same name" +msgstr "Jedna vrsta s istim imenom već postoji" + +#: inc/type.class.php:470 +msgid "Internal identifier" +msgstr "Interni identifikator" + +#: inc/type.class.php:524 +msgid "Behaviour" +msgstr "Ponašanje" + +#: inc/type.class.php:543 +msgid "Network connections" +msgstr "Mrežne veze" + +#: inc/type.class.php:547 +msgid "injection file plugin" +msgstr "Dodatak za umetanje podataka" + +#: inc/type.class.php:549 +msgid "geninventorynumber plugin" +msgstr "Dodatak za generiranje inventarskog broja" + +#: inc/type.class.php:550 +msgid "order plugin" +msgstr "Dodatak za naruđbe" + +#: inc/type.class.php:551 +msgid "item's uninstallation plugin" +msgstr "Dodatak za deinstaliranje predmeta" + +#: inc/type.class.php:552 +msgid "simcard plugin" +msgstr "Dodatak za SIM kartice" + +#: inc/type.class.php:553 +msgid "treeview plugin" +msgstr "Dodatak za stablasti prikaz" + +#: inc/type.class.php:716 +msgid "Regenerate files" +msgstr "Ponovo generiraj datoteke" + +#: inc/type.class.php:729 +msgid "Link to other objects" +msgstr "Poveži s drugim objektima" + +#. TRANS: %1$s is itemtype name +#: inc/type.class.php:2070 +#, php-format +msgid "Unable to load the class %1$s." +msgstr "Nije moguće učitati klasu %1$s." + +#. TRANS: %1$s is itemtype name +#: inc/type.class.php:2072 +#, php-format +msgid "" +"You probably have garbage data in your database for this plugin and missing " +"files in %1$s" +msgstr "U bazi podataka vjerojatno imaš smeće za ovaj dodatak i nedostaju datoteke u %1$s" + +#: inc/object.class.php:537 +msgid "Object preview" +msgstr "Pregled objekta" + +#: inc/object.class.php:801 +msgid "You must configure rights to enable the preview" +msgstr "Za aktiviranje pregleda moraš konfigurirati prava" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "Polja povezana s objektom" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Oznaka" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Ime u bazi podataka" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Dodaj novo polje" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "Polje samo-za-čitanje" diff --git a/locales/it_IT.mo b/locales/it_IT.mo index 2fa1fd84..faf921f7 100644 Binary files a/locales/it_IT.mo and b/locales/it_IT.mo differ diff --git a/locales/it_IT.po b/locales/it_IT.po index 5a261b24..41abbb9c 100644 --- a/locales/it_IT.po +++ b/locales/it_IT.po @@ -5,12 +5,12 @@ # Translators: # Pierfrancesco Passerini , 2018 # Salvatore Russo , 2016 -# Giudy , 2018 +# Davide , 2018 msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Genericobject\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" "PO-Revision-Date: 2019-11-08 14:59+0000\n" "Last-Translator: Cédric Anne\n" "Language-Team: Italian (Italy) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/it_IT/)\n" @@ -20,16 +20,25 @@ msgstr "" "Language: it_IT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Gestione degli Oggetti" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "Famiglia vuota" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "Tipo di oggetti" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "Gestione degli Oggetti" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "Il menù a discesa richiesto non esiste" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -39,14 +48,9 @@ msgstr "Campi rimossi con successo" msgid "Field added successfully" msgstr "Campo aggiunto con successo" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "Il menù a discesa richiesto non esiste" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" -msgstr "Famiglia vuota" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "Famiglia" #: inc/profile.class.php:141 msgid "General" @@ -60,113 +64,109 @@ msgstr "Oggetti" msgid "(No types defined yet)" msgstr "(Nessun tipo ancora definito)" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "Campi associati con l'oggetto" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "Etichetta" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "Nome nel DataBase" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "Aggiungi nuovo campo" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "Campo in sola lettura" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "Il nome del tipo non è presente" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "Il nome della tipologia deve essere più lungo" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "I tipi 'field', 'object' e 'type' sono riservati. Sceglierne un altro" -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "Il nome del tipo deve iniziare con una lettera" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "Un tipo con lo stesso nome esiste già" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "Famiglia" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "Identificatore interno" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "Comportamento" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "Connessioni di rete" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "injection file plugin" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "geninventorynumber plugin" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "order plugin" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "item's uninstallation plugin" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "simcard plugin" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "Rigenera file" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "Collega ad altri oggetti" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "Impossibile caricare la classe %1$s ." #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "Per questo plugin hai, probabilmente, dei dati inutili nel tuo database e file mancanti in %1$s" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "Anteprima dell'oggetto" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "Bisogna configurare i diritti per abilitare l'anteprima" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "Campi associati con l'oggetto" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Etichetta" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Nome nel DataBase" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Aggiungi nuovo campo" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "Campo in sola lettura" diff --git a/locales/ko_KR.mo b/locales/ko_KR.mo index 944acc09..6f5a9b62 100644 Binary files a/locales/ko_KR.mo and b/locales/ko_KR.mo differ diff --git a/locales/ko_KR.po b/locales/ko_KR.po index bc3f17d1..554a140e 100644 --- a/locales/ko_KR.po +++ b/locales/ko_KR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Genericobject\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" "PO-Revision-Date: 2020-02-03 04:26+0000\n" "Last-Translator: SeongHyeon Cho \n" "Language-Team: Korean (Korea) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/ko_KR/)\n" @@ -18,16 +18,25 @@ msgstr "" "Language: ko_KR\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "객체 관리" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "빈 집단" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "객체 유형" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "객체 관리" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "요청된 드롭다운은 존재하지 않습니다" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -37,14 +46,9 @@ msgstr "항목(들) 삭제됨" msgid "Field added successfully" msgstr "항목 추가됨" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "요청된 드롭다운은 존재하지 않습니다" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" -msgstr "빈 집단" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "객체의 유형 집단" #: inc/profile.class.php:141 msgid "General" @@ -58,113 +62,109 @@ msgstr "객체" msgid "(No types defined yet)" msgstr "(아직 정의된 유형 없음)" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "객체에 연관된 항목" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "라벨" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "DB에서의 이름" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "새 항목 추가" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "읽기-전용 항목" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "유형 이름이 누락되었습니다" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "유형 이름은 더 길어야 합니다" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "유형 'field', 'object' 그리고 'type'은 금지되었습니다. 다른 것을 선택해 주세요" -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "유형은 문자로 시작해야 합니다" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "유형이 이미 같은 이름으로 존재합니다" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "객체의 유형 집단" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "내부 식별자" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "동작" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "네트워크 연결" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "파일 플러그인 삽입" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "geninventorynumber 플러그인" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "order 플러그인" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "품목 제거 플러그인" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "simcard 플러그인" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "treeview 플러그인" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "파일 재생성" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "다른 객체들과 연결" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "클래스 %1$s을 불러올 수 없습니다." #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "이 플러그인에 대한 데이터베이스 내에 개비지 데이터가 있거나 %1$s내의 파일이 누락된 것 같습니다" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "객체 미리보기" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "미리보기 활성화에 대한 권한을 구성해야 합니다" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "객체에 연관된 항목" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "라벨" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "DB에서의 이름" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "새 항목 추가" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "읽기-전용 항목" diff --git a/locales/pl_PL.mo b/locales/pl_PL.mo index 063f64b9..5b370a68 100644 Binary files a/locales/pl_PL.mo and b/locales/pl_PL.mo differ diff --git a/locales/pl_PL.po b/locales/pl_PL.po index 92a04ee6..cb64c594 100644 --- a/locales/pl_PL.po +++ b/locales/pl_PL.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Genericobject\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" "PO-Revision-Date: 2019-11-08 14:59+0000\n" "Last-Translator: Cédric Anne\n" "Language-Team: Polish (Poland) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/pl_PL/)\n" @@ -18,16 +18,25 @@ msgstr "" "Language: pl_PL\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Zarządzanie obiektami" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "Rodzaj obiektów" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "Zarządzanie obiektami" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "Żądana lista rozwijana nie istnieje" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -37,13 +46,8 @@ msgstr "Pole(a) zostały pomyślnie skasowane" msgid "Field added successfully" msgstr "Pole dodane pomyślnie" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "Żądana lista rozwijana nie istnieje" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" msgstr "" #: inc/profile.class.php:141 @@ -58,113 +62,109 @@ msgstr "" msgid "(No types defined yet)" msgstr "" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "Etykieta" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "Nazwa w DB" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "Dodaj nowe pole" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "" -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "Typ musi zaczynać się od litery" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "Istnieje już typ o takiej samej nazwie" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "Identyfikator wewnętrzny" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "Zachowanie" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "Połączenia sieciowe" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "geninventorynumber plugin" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "Link do innych obiektów" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "Podgląd obiektu" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Etykieta" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Nazwa w DB" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Dodaj nowe pole" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "" diff --git a/locales/pt_BR.mo b/locales/pt_BR.mo index bf615fc5..13f182e4 100644 Binary files a/locales/pt_BR.mo and b/locales/pt_BR.mo differ diff --git a/locales/pt_BR.po b/locales/pt_BR.po index 64b67f16..b9ce171f 100644 --- a/locales/pt_BR.po +++ b/locales/pt_BR.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Genericobject\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" "PO-Revision-Date: 2019-11-08 14:59+0000\n" "Last-Translator: Cédric Anne\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/pt_BR/)\n" @@ -20,16 +20,25 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Gerenciamento de objetos" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "Família vazia" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "Tipos de objetos" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "Gerenciamento de objetos" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "O menu suspenso solicitado não existe" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -39,14 +48,9 @@ msgstr "Campo(s) excluído(s) com sucesso" msgid "Field added successfully" msgstr "Campo adicionado com sucesso" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "O menu suspenso solicitado não existe" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" -msgstr "Família vazia" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "Família de tipo de objetos" #: inc/profile.class.php:141 msgid "General" @@ -60,113 +64,109 @@ msgstr "Objetos" msgid "(No types defined yet)" msgstr "(Sem tipos definidos ainda)" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "Campos associados com o objeto" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "Etiqueta" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "Nome no banco de dados" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "Adicionar novo campo" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "Campo apenas de leitura" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "O nome do tipo está faltando" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "Nome deve ser mais longo" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "Tipos 'campo', 'objeto' e 'tipo' estão reservados. Por favor escolha outro" -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "O tipo deve começar com uma letra" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "Um tipo com o mesmo nome já existe " -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "Família de tipo de objetos" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "Identificador interno" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "Comportamento" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "Conexões de rede" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "plugin datainjection" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "plugin getinventorynumber" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "plugin order" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "plugin item's uninstallation" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "plugin simcard" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "Regenerar arquivos" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "Conexão com outros objetos" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "Não consegui carregar a classe %1$s." #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "Deve ter dados no lixo da tua base de dados porque estão a faltas ficheiros neste plugin %1$s" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "Pré-visualização do objet" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "Você deve configurar os direitos para habilitar pré-visualização" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "Campos associados com o objeto" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Etiqueta" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Nome no banco de dados" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Adicionar novo campo" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "Campo apenas de leitura" diff --git a/locales/pt_PT.mo b/locales/pt_PT.mo index ce5889fc..99a24101 100644 Binary files a/locales/pt_PT.mo and b/locales/pt_PT.mo differ diff --git a/locales/pt_PT.po b/locales/pt_PT.po index 04103dfe..5d168e9b 100644 --- a/locales/pt_PT.po +++ b/locales/pt_PT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Genericobject\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" "PO-Revision-Date: 2019-11-08 14:59+0000\n" "Last-Translator: Cédric Anne\n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/pt_PT/)\n" @@ -17,16 +17,25 @@ msgstr "" "Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Gerenciamento de objetos" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "Família vazia" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "Tipo de objetos" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "Gerenciamento de objetos" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "A lista suspensa solicitada não existe" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -36,14 +45,9 @@ msgstr "Campo (s) excluído com sucesso" msgid "Field added successfully" msgstr "Campo adicionado com sucesso" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "A lista suspensa solicitada não existe" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" -msgstr "Família vazia" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "Família do tipo de objetos" #: inc/profile.class.php:141 msgid "General" @@ -57,113 +61,109 @@ msgstr "Objetos" msgid "(No types defined yet)" msgstr "(Nenhum tipo definido ainda)" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "Campos associados ao objeto" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "Rótulo" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "Nome na BD" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "Adicionar um novo campo" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "Campo somente de leitura" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "Um tipo de nome está ausente" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "Um tipo de nome deve ser mais longo" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "Os tipos ‘field’, ‘object’ e ‘type’ são reservados. Por favor, escolha outro" -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "Tipo deve começar com uma letra" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "Já existe um tipo com o mesmo nome" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "Família do tipo de objetos" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "Identificador interno" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "Comportamento" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "Ligações de rede" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "plugin de arquivo de injeção" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "geninventorynumber plugin" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "outro plugin" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "plugin de desinstalação do item" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "simcard plugin" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "Regenerar ficheiros" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "Ligação para outro objeto" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "Não é possível carregar a classe usando %1$s." #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "Provavelmente tem dados incorretos na sua base de dados para este plugin e arquivos ausentes em %1$s" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "Pré-visualização de objetos" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "Deve configurar os direitos para habilitar a visualização" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "Campos associados ao objeto" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Rótulo" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Nome na BD" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Adicionar um novo campo" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "Campo somente de leitura" diff --git a/locales/ro_RO.mo b/locales/ro_RO.mo index 62939fb2..97dc1971 100644 Binary files a/locales/ro_RO.mo and b/locales/ro_RO.mo differ diff --git a/locales/ro_RO.po b/locales/ro_RO.po index d2b531a8..1b6353c6 100644 --- a/locales/ro_RO.po +++ b/locales/ro_RO.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Genericobject\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" "PO-Revision-Date: 2019-11-08 14:59+0000\n" "Last-Translator: Cédric Anne\n" "Language-Team: Romanian (Romania) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/ro_RO/)\n" @@ -18,16 +18,25 @@ msgstr "" "Language: ro_RO\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Managementul obiectelor" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "Familie vida" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "Tipul obiectelor" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "Managementul obiectelor" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "Dropdown-ul solicitat nu exista" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -37,14 +46,9 @@ msgstr "Campul(urile) sterse cu succes" msgid "Field added successfully" msgstr "Camp adaugat cu succes" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "Dropdown-ul solicitat nu exista" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" -msgstr "Familie vida" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "Familia tipului de obiecte" #: inc/profile.class.php:141 msgid "General" @@ -58,113 +62,109 @@ msgstr "Obiecte" msgid "(No types defined yet)" msgstr "" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "Campuri asociate la obiect" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "Eticheta" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "Nume in DB" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "Add camp nou" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "Nume tip lipseste" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "Tipurile 'camp', 'obiect', si 'tip' sunt rezervate.Va rugam alegeti altul" -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "Tipul trebuie sa inceapa cu o litera" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "UN tip cu acelasi nume exista deja" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "Familia tipului de obiecte" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "Identificator intern" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "Comportament" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "Conexiuni retea" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "Plugin injectare fisiere" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "geninventorynumber plugin" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "Plugin gestiune comenzi" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "Plugin dezinstalare elemente" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "Fisiere regenerate" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "Linck catre alte obiecte" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "Previzualizeaza un obiect de acest tip" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "Trebuie sa configurati drepturi pe acest obiect pentru a putea previzualiza" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "Campuri asociate la obiect" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Eticheta" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Nume in DB" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Add camp nou" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "" diff --git a/locales/ru_RU.mo b/locales/ru_RU.mo index 9a6312c9..eba7341c 100644 Binary files a/locales/ru_RU.mo and b/locales/ru_RU.mo differ diff --git a/locales/ru_RU.po b/locales/ru_RU.po index 999cd047..6c2dcd89 100644 --- a/locales/ru_RU.po +++ b/locales/ru_RU.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Genericobject\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" "PO-Revision-Date: 2019-11-08 14:59+0000\n" "Last-Translator: Cédric Anne\n" "Language-Team: Russian (Russia) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/ru_RU/)\n" @@ -19,16 +19,25 @@ msgstr "" "Language: ru_RU\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Управление объектами" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "Тип объектов" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "Управление объектами" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -38,13 +47,8 @@ msgstr "Поле(я) удалены успешно" msgid "Field added successfully" msgstr "Поле(я) добавлены успешно" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" msgstr "" #: inc/profile.class.php:141 @@ -59,113 +63,109 @@ msgstr "Объекты" msgid "(No types defined yet)" msgstr "" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "Поля связаны с объектом" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "Наименование" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "Имя в БД" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "Добавить новое поле" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "Типы 'field', 'object' и 'type' зарезервированы. Выберите другие." -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "Тип должен начинаться с буквы" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "Тип с таким именем уже есть" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "Внутренний идентификатор" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "Взаимодействия" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "Сетевые соединения" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "Связать с другим объектом" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "Предпросмотр" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "Вы должны настроить права для предпросмотра" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "Поля связаны с объектом" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Наименование" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Имя в БД" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Добавить новое поле" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "" diff --git a/locales/sv_SE.mo b/locales/sv_SE.mo index f612df51..0432e916 100644 Binary files a/locales/sv_SE.mo and b/locales/sv_SE.mo differ diff --git a/locales/sv_SE.po b/locales/sv_SE.po index ca8f0829..b526212b 100644 --- a/locales/sv_SE.po +++ b/locales/sv_SE.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Genericobject\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" "PO-Revision-Date: 2019-11-08 14:59+0000\n" "Last-Translator: Cédric Anne\n" "Language-Team: Swedish (Sweden) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/sv_SE/)\n" @@ -18,16 +18,25 @@ msgstr "" "Language: sv_SE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Hantera tillgångar" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "Tom familj" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "Typ av tillgång" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "Hantera tillgångar" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "Den begärda rullmenyn saknas" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -37,14 +46,9 @@ msgstr "Fältet(en) raderades" msgid "Field added successfully" msgstr "Attribut tillagt" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "Den begärda rullmenyn saknas" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" -msgstr "Tom familj" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "Ingår i typfamilj" #: inc/profile.class.php:141 msgid "General" @@ -58,113 +62,109 @@ msgstr "Tillgångar" msgid "(No types defined yet)" msgstr "(Inga typer har skapats ännu)" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "Fält kopplade till tillgången" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "Etikett" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "Namn i DB" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "Lägg till nytt fält" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "Skrivskyddat fält" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "Typnamn saknas" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "Typnamnet måste vara längre" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "Typnamnen 'fält, 'objekt' och 'typ' är reserverade av systemet. Var vänlig välj ett annat namn." -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "Typnamnet måste börja med en bokstav" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "Typnamnet existerar redan" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "Ingår i typfamilj" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "Internt namn" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "Beteende" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "Nätverksanslutningar" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "Injection file plug-in" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "Geninventorynumber plug-in" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "Order plug-in" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "Item's uninstallation plug-in" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "Simcard plug-in" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "Skapa filer på nytt" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "Länka till andra tillgångar" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "Kunde inte läsa in klass %1$s-" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "Du har troligtvis skräpdata i databasen för denna plug-in och saknar filer i %1$s" -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "Förhandsgranska tillgång" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "Du måste konfigurera rättigheter för att aktivera förhandsgranskning" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "Fält kopplade till tillgången" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Etikett" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Namn i DB" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Lägg till nytt fält" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "Skrivskyddat fält" diff --git a/locales/tr_TR.mo b/locales/tr_TR.mo index 5d913a91..103b3be1 100644 Binary files a/locales/tr_TR.mo and b/locales/tr_TR.mo differ diff --git a/locales/tr_TR.po b/locales/tr_TR.po index 22efe7f4..8cbaf2c2 100644 --- a/locales/tr_TR.po +++ b/locales/tr_TR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Genericobject\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-06 15:56+0000\n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" "PO-Revision-Date: 2019-11-15 05:35+0000\n" "Last-Translator: Kaya Zeren \n" "Language-Team: Turkish (Turkey) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/tr_TR/)\n" @@ -18,16 +18,25 @@ msgstr "" "Language: tr_TR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: front/type.php:38 front/object.php:33 inc/profile.class.php:287 +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "Nesne yönetimi" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "Aile boş" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 #: inc/type.class.php:66 msgid "Type of objects" msgstr "Nesne tipi" -#: front/type.form.php:73 front/familylist.php:33 front/familylist.php:41 -#: index.php:58 inc/object_item.class.php:109 inc/profile.class.php:39 -#: inc/type.class.php:289 inc/type.class.php:416 setup.php:224 -msgid "Objects management" -msgstr "Nesne yönetimi" +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "İstenen açılan kutu bulunamadı" #: front/field.form.php:41 msgid "Field(s) deleted successfully" @@ -37,14 +46,9 @@ msgstr "Alanlar silindi" msgid "Field added successfully" msgstr "Alan eklendi" -#: front/commondropdown.php:11 front/commontreedropdown.form.php:36 -#: front/commondropdown.form.php:36 -msgid "The requested dropdown does not exists" -msgstr "İstenen açılan kutu bulunamadı" - -#: front/familylist.php:37 index.php:68 -msgid "Empty family" -msgstr "Aile boş" +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "Nesnelerin aile tipi" #: inc/profile.class.php:141 msgid "General" @@ -58,113 +62,109 @@ msgstr "Nesneler" msgid "(No types defined yet)" msgstr "(Henüz bir tür tanımlanmamış)" -#: inc/field.class.php:64 -msgid "Fields associated with the object" -msgstr "Nesne ile ilişkilendirilmiş alanlar" - -#: inc/field.class.php:70 -msgid "Label" -msgstr "Etiket" - -#: inc/field.class.php:71 -msgid "Name in DB" -msgstr "Veritabanındaki Ad" - -#: inc/field.class.php:126 -msgid "Add new field" -msgstr "Alan ekle" - -#: inc/field.class.php:317 -msgid "Read-only field" -msgstr "Salt okunur alan" - -#: inc/type.class.php:153 +#: inc/type.class.php:156 msgid "Type name is missing" msgstr "Tip adı eksik" -#: inc/type.class.php:159 +#: inc/type.class.php:162 msgid "Type name must be longer" msgstr "Tür adı daha uzun olmalı" -#: inc/type.class.php:165 +#: inc/type.class.php:168 msgid "" "Types 'field', 'object' and 'type' are reserved. Please choose another one" msgstr "field', 'object' ve 'type' tipleri ayrılmış olduğundan kullanılamaz. Lütfen başka bir tip seçin" -#: inc/type.class.php:172 +#: inc/type.class.php:175 msgid "Type must start with a letter" msgstr "Tip bir harf ile başlamalıdır" -#: inc/type.class.php:179 +#: inc/type.class.php:182 msgid "A type already exists with the same name" msgstr "Aynı adlı bir tip zaten var" -#: inc/type.class.php:377 inc/type.class.php:506 inc/typefamily.class.php:36 -msgid "Family of type of objects" -msgstr "Nesnelerin aile tipi" - -#: inc/type.class.php:467 +#: inc/type.class.php:470 msgid "Internal identifier" msgstr "İç belirteç" -#: inc/type.class.php:521 +#: inc/type.class.php:524 msgid "Behaviour" msgstr "Davranış" -#: inc/type.class.php:540 +#: inc/type.class.php:543 msgid "Network connections" msgstr "Ağ bağlantıları" -#: inc/type.class.php:544 +#: inc/type.class.php:547 msgid "injection file plugin" msgstr "dosya gönderme uygulama eki" -#: inc/type.class.php:546 +#: inc/type.class.php:549 msgid "geninventorynumber plugin" msgstr "stoknumarasiolustur uygulama eki" -#: inc/type.class.php:547 +#: inc/type.class.php:550 msgid "order plugin" msgstr "sıralama uygulama eki" -#: inc/type.class.php:548 +#: inc/type.class.php:551 msgid "item's uninstallation plugin" msgstr "ögeyi kaldırma uygulama eki" -#: inc/type.class.php:549 +#: inc/type.class.php:552 msgid "simcard plugin" msgstr "sim kart uygulama eki" -#: inc/type.class.php:550 +#: inc/type.class.php:553 msgid "treeview plugin" msgstr "ağaç görünümü uygulama eki" -#: inc/type.class.php:713 +#: inc/type.class.php:716 msgid "Regenerate files" msgstr "Dosyaları yeniden oluştur" -#: inc/type.class.php:726 +#: inc/type.class.php:729 msgid "Link to other objects" msgstr "Diğer nesnelere bağlantı" #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2039 +#: inc/type.class.php:2070 #, php-format msgid "Unable to load the class %1$s." msgstr "%1$s sınıfı yüklenemedi." #. TRANS: %1$s is itemtype name -#: inc/type.class.php:2041 +#: inc/type.class.php:2072 #, php-format msgid "" "You probably have garbage data in your database for this plugin and missing " "files in %1$s" msgstr "Veritabanınızda bu uygulama eki ve %1$s içindeki eksik dosyalar için büyük olasılıkla çöp veriler var " -#: inc/object.class.php:526 +#: inc/object.class.php:537 msgid "Object preview" msgstr "Nesne önizleme" -#: inc/object.class.php:815 +#: inc/object.class.php:801 msgid "You must configure rights to enable the preview" msgstr "Ön izlemeyi görüntüleyebilmek için izinleri yapılandırmalısınız" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "Nesne ile ilişkilendirilmiş alanlar" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "Etiket" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "Veritabanındaki Ad" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "Alan ekle" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "Salt okunur alan" diff --git a/locales/zh_CN.mo b/locales/zh_CN.mo new file mode 100644 index 00000000..1c735523 Binary files /dev/null and b/locales/zh_CN.mo differ diff --git a/locales/zh_CN.po b/locales/zh_CN.po new file mode 100644 index 00000000..cbdcc0f6 --- /dev/null +++ b/locales/zh_CN.po @@ -0,0 +1,170 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# liAnGjiA , 2018 +msgid "" +msgstr "" +"Project-Id-Version: GLPI Plugin - Genericobject\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-07-03 18:57+0000\n" +"PO-Revision-Date: 2019-11-08 14:59+0000\n" +"Last-Translator: Cédric Anne\n" +"Language-Team: Chinese (China) (http://www.transifex.com/teclib/glpi-project-plugin-genericobject/language/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: index.php:58 front/familylist.php:33 front/familylist.php:41 +#: front/type.form.php:73 inc/profile.class.php:39 inc/type.class.php:292 +#: inc/type.class.php:419 inc/object_item.class.php:109 setup.php:223 +msgid "Objects management" +msgstr "项目管理" + +#: index.php:68 front/familylist.php:37 +msgid "Empty family" +msgstr "" + +#: front/object.php:33 front/type.php:38 inc/profile.class.php:287 +#: inc/type.class.php:66 +msgid "Type of objects" +msgstr "项目类型" + +#: front/commontreedropdown.form.php:36 front/commondropdown.php:11 +#: front/commondropdown.form.php:36 +msgid "The requested dropdown does not exists" +msgstr "" + +#: front/field.form.php:41 +msgid "Field(s) deleted successfully" +msgstr "" + +#: front/field.form.php:51 +msgid "Field added successfully" +msgstr "" + +#: inc/typefamily.class.php:36 inc/type.class.php:380 inc/type.class.php:509 +msgid "Family of type of objects" +msgstr "" + +#: inc/profile.class.php:141 +msgid "General" +msgstr "常规" + +#: inc/profile.class.php:147 +msgid "Objects" +msgstr "项目" + +#: inc/profile.class.php:149 +msgid "(No types defined yet)" +msgstr "" + +#: inc/type.class.php:156 +msgid "Type name is missing" +msgstr "" + +#: inc/type.class.php:162 +msgid "Type name must be longer" +msgstr "" + +#: inc/type.class.php:168 +msgid "" +"Types 'field', 'object' and 'type' are reserved. Please choose another one" +msgstr "" + +#: inc/type.class.php:175 +msgid "Type must start with a letter" +msgstr "" + +#: inc/type.class.php:182 +msgid "A type already exists with the same name" +msgstr "" + +#: inc/type.class.php:470 +msgid "Internal identifier" +msgstr "" + +#: inc/type.class.php:524 +msgid "Behaviour" +msgstr "" + +#: inc/type.class.php:543 +msgid "Network connections" +msgstr "" + +#: inc/type.class.php:547 +msgid "injection file plugin" +msgstr "" + +#: inc/type.class.php:549 +msgid "geninventorynumber plugin" +msgstr "" + +#: inc/type.class.php:550 +msgid "order plugin" +msgstr "" + +#: inc/type.class.php:551 +msgid "item's uninstallation plugin" +msgstr "" + +#: inc/type.class.php:552 +msgid "simcard plugin" +msgstr "" + +#: inc/type.class.php:553 +msgid "treeview plugin" +msgstr "" + +#: inc/type.class.php:716 +msgid "Regenerate files" +msgstr "" + +#: inc/type.class.php:729 +msgid "Link to other objects" +msgstr "" + +#. TRANS: %1$s is itemtype name +#: inc/type.class.php:2070 +#, php-format +msgid "Unable to load the class %1$s." +msgstr "" + +#. TRANS: %1$s is itemtype name +#: inc/type.class.php:2072 +#, php-format +msgid "" +"You probably have garbage data in your database for this plugin and missing " +"files in %1$s" +msgstr "" + +#: inc/object.class.php:537 +msgid "Object preview" +msgstr "" + +#: inc/object.class.php:801 +msgid "You must configure rights to enable the preview" +msgstr "" + +#: inc/field.class.php:64 +msgid "Fields associated with the object" +msgstr "" + +#: inc/field.class.php:70 +msgid "Label" +msgstr "" + +#: inc/field.class.php:71 +msgid "Name in DB" +msgstr "" + +#: inc/field.class.php:126 +msgid "Add new field" +msgstr "" + +#: inc/field.class.php:318 +msgid "Read-only field" +msgstr "" diff --git a/objects/generic.form.tpl b/objects/generic.form.tpl index e0e91e8d..1daf17fb 100644 --- a/objects/generic.form.tpl +++ b/objects/generic.form.tpl @@ -32,4 +32,4 @@ include ("../../../inc/includes.php"); $item = new %%CLASSNAME%%(); -include (GLPI_ROOT."/plugins/genericobject/front/object.form.php"); +include (GENERICOBJECT_DIR."/front/object.form.php"); diff --git a/setup.php b/setup.php index e7bdc5c9..5055c8ee 100644 --- a/setup.php +++ b/setup.php @@ -35,15 +35,15 @@ ---------------------------------------------------------------------- */ -define ('PLUGIN_GENERICOBJECT_VERSION', '2.8.0'); +define ('PLUGIN_GENERICOBJECT_VERSION', '2.9.0'); // Minimal GLPI version, inclusive -define("PLUGIN_GENERICOBJECT_MIN_GLPI", "9.4"); +define("PLUGIN_GENERICOBJECT_MIN_GLPI", "9.5"); // Maximum GLPI version, exclusive -define("PLUGIN_GENERICOBJECT_MAX_GLPI", "9.5"); +define("PLUGIN_GENERICOBJECT_MAX_GLPI", "9.6"); if (!defined("GENERICOBJECT_DIR")) { - define("GENERICOBJECT_DIR", GLPI_ROOT . "/plugins/genericobject"); + define("GENERICOBJECT_DIR", Plugin::getPhpDir("genericobject")); } if (!defined("GENERICOBJECT_DOC_DIR")) { @@ -112,8 +112,8 @@ * @return void */ function plugin_init_genericobject() { - global $PLUGIN_HOOKS, $CFG_GLPI, $GO_BLACKLIST_FIELDS, $GO_FIELDS, - $GENERICOBJECT_PDF_TYPES, $GO_LINKED_TYPES, $GO_READONLY_FIELDS, $LOADED_PLUGINS; + global $PLUGIN_HOOKS, $GO_BLACKLIST_FIELDS, + $GENERICOBJECT_PDF_TYPES, $GO_LINKED_TYPES, $GO_READONLY_FIELDS; $GO_READONLY_FIELDS = ["is_helpdesk_visible", "comment"]; @@ -147,7 +147,7 @@ function plugin_init_genericobject() { //register class PluginTreeviewConfig::registerType($itemtype); - $PLUGIN_HOOKS['treeview'][$itemtype] = '../genericobject/pics/default-icon16.png'; + $PLUGIN_HOOKS['treeview'][$itemtype] = Plugin::getWebDir('genericobject') . '/pics/default-icon16.png'; //add hook for overload item show form url $PLUGIN_HOOKS['treeview_params']['genericobject'] = [ @@ -198,7 +198,6 @@ function plugin_init_genericobject() { } function plugin_post_init_genericobject() { - global $GO_FIELDS; Plugin::registerClass( 'PluginGenericobjectProfile', ['addtabon' => ['Profile', 'PluginGenericobjectType']] @@ -236,51 +235,6 @@ function plugin_version_genericobject() { ]; } -/** - * Check pre-requisites before install - * OPTIONNAL, but recommanded - * - * @return boolean - */ -function plugin_genericobject_check_prerequisites() { - - //Version check is not done by core in GLPI < 9.2 but has to be delegated to core in GLPI >= 9.2. - if (!method_exists('Plugin', 'checkGlpiVersion')) { - $version = preg_replace('/^((\d+\.?)+).*$/', '$1', GLPI_VERSION); - $matchMinGlpiReq = version_compare($version, PLUGIN_GENERICOBJECT_MIN_GLPI, '>='); - $matchMaxGlpiReq = version_compare($version, PLUGIN_GENERICOBJECT_MAX_GLPI, '<'); - - if (!$matchMinGlpiReq || !$matchMaxGlpiReq) { - echo vsprintf( - 'This plugin requires GLPI >= %1$s and < %2$s.', - [ - PLUGIN_GENERICOBJECT_MIN_GLPI, - PLUGIN_GENERICOBJECT_MAX_GLPI, - ] - ); - return false; - } - } - - return true; -} - -/** - * Check configuration process - * - * @param boolean $verbose Whether to display message on failure. Defaults to false - * - * @return boolean - */ -function plugin_genericobject_check_config($verbose = false) { - if (true) { // Your configuration check - return true; - } - if ($verbose) { - echo __('Installed / not configured'); - } - return false; -} function plugin_genericobject_haveTypeRight($itemtype, $right) { switch ($itemtype) { @@ -295,9 +249,9 @@ function plugin_genericobject_haveTypeRight($itemtype, $right) { function plugin_genericobject_includeCommonFields($force = false) { //Load genericobject default constants if (!$force) { - include_once (GLPI_ROOT . "/plugins/genericobject/fields/field.constant.php"); + include_once (GENERICOBJECT_DIR."/fields/field.constant.php"); } else { - include (GLPI_ROOT . "/plugins/genericobject/fields/field.constant.php"); + include (GENERICOBJECT_DIR."/fields/field.constant.php"); } //Include user constants, that must be accessible for all itemtypes