From dabe7e47608ba149a43e89a45ba796e8c2ea65b5 Mon Sep 17 00:00:00 2001 From: Tim van Dijen <tvdijen@gmail.com> Date: Wed, 23 Feb 2022 13:04:50 +0100 Subject: [PATCH] Revert gettext-upgrade --- composer.json | 3 +- composer.lock | 170 +++++++++---------------- lib/SimpleSAML/Locale/Localization.php | 18 +-- lib/SimpleSAML/Locale/Translate.php | 12 +- 4 files changed, 68 insertions(+), 135 deletions(-) diff --git a/composer.json b/composer.json index 178e5092b..88762ea4d 100644 --- a/composer.json +++ b/composer.json @@ -49,8 +49,7 @@ "ext-pcre": "*", "ext-SPL": "*", "ext-zlib": "*", - "gettext/gettext": "^5.6.1", - "gettext/translator": "^1.0.1", + "gettext/gettext": "v4.x-dev#3e7460f8d9c90174824e3f39240bd578bb3d376a", "phpmailer/phpmailer": "^6.5", "simplesamlphp/assert": "^0.2.11", "simplesamlphp/saml2": "^4.5", diff --git a/composer.lock b/composer.lock index f3ff51e61..01364677a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,32 +4,39 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "84c8e5d462b13ed3f1436c1c9d9b5231", + "content-hash": "499ed983a7e8abed35ed5ab324abc681", "packages": [ { "name": "gettext/gettext", - "version": "v5.6.1", + "version": "4.x-dev", "source": { "type": "git", "url": "https://github.com/php-gettext/Gettext.git", - "reference": "017e249601d32b9a88c2eb4c10eac89bf582a7d3" + "reference": "3e7460f8d9c90174824e3f39240bd578bb3d376a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-gettext/Gettext/zipball/017e249601d32b9a88c2eb4c10eac89bf582a7d3", - "reference": "017e249601d32b9a88c2eb4c10eac89bf582a7d3", + "url": "https://api.github.com/repos/php-gettext/Gettext/zipball/3e7460f8d9c90174824e3f39240bd578bb3d376a", + "reference": "3e7460f8d9c90174824e3f39240bd578bb3d376a", "shasum": "" }, "require": { "gettext/languages": "^2.3", - "php": "^7.2|^8.0" + "php": ">=5.4.0" }, "require-dev": { - "brick/varexporter": "^0.3.5", - "friendsofphp/php-cs-fixer": "^3.2", - "oscarotero/php-cs-fixer-config": "^2.0", - "phpunit/phpunit": "^8.0|^9.0", - "squizlabs/php_codesniffer": "^3.0" + "illuminate/view": "^5.0.x-dev", + "phpunit/phpunit": "^4.8|^5.7|^6.5", + "squizlabs/php_codesniffer": "^3.0", + "symfony/yaml": "~2", + "twig/extensions": "*", + "twig/twig": "^1.31|^2.0" + }, + "suggest": { + "illuminate/view": "Is necessary if you want to use the Blade extractor", + "symfony/yaml": "Is necessary if you want to use the Yaml extractor/generator", + "twig/extensions": "Is necessary if you want to use the Twig extractor", + "twig/twig": "Is necessary if you want to use the Twig extractor" }, "type": "library", "autoload": { @@ -50,7 +57,7 @@ } ], "description": "PHP gettext manager", - "homepage": "https://github.com/php-gettext/Gettext", + "homepage": "https://github.com/oscarotero/Gettext", "keywords": [ "JS", "gettext", @@ -61,8 +68,8 @@ ], "support": { "email": "oom@oscarotero.com", - "issues": "https://github.com/php-gettext/Gettext/issues", - "source": "https://github.com/php-gettext/Gettext/tree/v5.6.1" + "issues": "https://github.com/oscarotero/Gettext/issues", + "source": "https://github.com/php-gettext/Gettext/tree/4.x" }, "funding": [ { @@ -78,7 +85,7 @@ "type": "patreon" } ], - "time": "2021-12-04T11:33:21+00:00" + "time": "2022-02-17T10:14:02+00:00" }, { "name": "gettext/languages", @@ -154,66 +161,6 @@ ], "time": "2021-11-11T17:30:39+00:00" }, - { - "name": "gettext/translator", - "version": "v1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-gettext/Translator.git", - "reference": "0a80844789e6a4ffad417d2053bbb56c83b02803" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-gettext/Translator/zipball/0a80844789e6a4ffad417d2053bbb56c83b02803", - "reference": "0a80844789e6a4ffad417d2053bbb56c83b02803", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.15", - "gettext/gettext": "^5.0.0", - "oscarotero/php-cs-fixer-config": "^1.0", - "phpunit/phpunit": "^8.0", - "squizlabs/php_codesniffer": "^3.0" - }, - "suggest": { - "gettext/gettext": "Is necessary to load and generate array files used by the translator" - }, - "type": "library", - "autoload": { - "psr-4": { - "Gettext\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Oscar Otero", - "email": "oom@oscarotero.com", - "homepage": "http://oscarotero.com", - "role": "Developer" - } - ], - "description": "Gettext translator functions", - "homepage": "https://github.com/php-gettext/Translator", - "keywords": [ - "gettext", - "i18n", - "php", - "translator" - ], - "support": { - "email": "oom@oscarotero.com", - "issues": "https://github.com/php-gettext/Translator/issues", - "source": "https://github.com/php-gettext/Translator/tree/v1.0.1" - }, - "time": "2020-12-01T18:51:46+00:00" - }, { "name": "phpmailer/phpmailer", "version": "v6.5.4", @@ -3414,16 +3361,16 @@ "packages-dev": [ { "name": "amphp/amp", - "version": "v2.6.1", + "version": "v2.6.2", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae" + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae", - "reference": "c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae", + "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", "shasum": "" }, "require": { @@ -3445,13 +3392,13 @@ } }, "autoload": { - "psr-4": { - "Amp\\": "lib" - }, "files": [ "lib/functions.php", "lib/Internal/functions.php" - ] + ], + "psr-4": { + "Amp\\": "lib" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3476,7 +3423,7 @@ } ], "description": "A non-blocking concurrency framework for PHP applications.", - "homepage": "http://amphp.org/amp", + "homepage": "https://amphp.org/amp", "keywords": [ "async", "asynchronous", @@ -3491,7 +3438,7 @@ "support": { "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.1" + "source": "https://github.com/amphp/amp/tree/v2.6.2" }, "funding": [ { @@ -3499,7 +3446,7 @@ "type": "github" } ], - "time": "2021-09-23T18:43:08+00:00" + "time": "2022-02-20T17:52:18+00:00" }, { "name": "amphp/byte-stream", @@ -4404,16 +4351,16 @@ }, { "name": "phar-io/version", - "version": "3.1.1", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "15a90844ad40f127afd244c0cad228de2a80052a" + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/15a90844ad40f127afd244c0cad228de2a80052a", - "reference": "15a90844ad40f127afd244c0cad228de2a80052a", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { @@ -4449,9 +4396,9 @@ "description": "Library for handling version information and constraints", "support": { "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.1.1" + "source": "https://github.com/phar-io/version/tree/3.2.1" }, - "time": "2022-02-07T21:56:48+00:00" + "time": "2022-02-21T01:04:05+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -4682,16 +4629,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.11", + "version": "9.2.12", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "665a1ac0a763c51afc30d6d130dac0813092b17f" + "reference": "c011a0b6aaa4acd2f39b7f51fb4ad4442b6ec631" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/665a1ac0a763c51afc30d6d130dac0813092b17f", - "reference": "665a1ac0a763c51afc30d6d130dac0813092b17f", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c011a0b6aaa4acd2f39b7f51fb4ad4442b6ec631", + "reference": "c011a0b6aaa4acd2f39b7f51fb4ad4442b6ec631", "shasum": "" }, "require": { @@ -4747,7 +4694,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.11" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.12" }, "funding": [ { @@ -4755,7 +4702,7 @@ "type": "github" } ], - "time": "2022-02-18T12:46:09+00:00" + "time": "2022-02-23T06:30:26+00:00" }, { "name": "phpunit/php-file-iterator", @@ -5000,16 +4947,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.14", + "version": "9.5.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "1883687169c017d6ae37c58883ca3994cfc34189" + "reference": "dc738383c519243b0a967f63943a848d3fd861aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1883687169c017d6ae37c58883ca3994cfc34189", - "reference": "1883687169c017d6ae37c58883ca3994cfc34189", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/dc738383c519243b0a967f63943a848d3fd861aa", + "reference": "dc738383c519243b0a967f63943a848d3fd861aa", "shasum": "" }, "require": { @@ -5025,7 +4972,7 @@ "phar-io/version": "^3.0.2", "php": ">=7.3", "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.7", + "phpunit/php-code-coverage": "^9.2.12", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -5087,7 +5034,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.14" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.15" }, "funding": [ { @@ -5099,7 +5046,7 @@ "type": "github" } ], - "time": "2022-02-18T12:54:07+00:00" + "time": "2022-02-23T08:53:20+00:00" }, { "name": "sebastian/cli-parser", @@ -6522,16 +6469,16 @@ }, { "name": "vimeo/psalm", - "version": "4.20.0", + "version": "4.21.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "f82a70e7edfc6cf2705e9374c8a0b6a974a779ed" + "reference": "d8bec4c7aaee111a532daec32fb09de5687053d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/f82a70e7edfc6cf2705e9374c8a0b6a974a779ed", - "reference": "f82a70e7edfc6cf2705e9374c8a0b6a974a779ed", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/d8bec4c7aaee111a532daec32fb09de5687053d1", + "reference": "d8bec4c7aaee111a532daec32fb09de5687053d1", "shasum": "" }, "require": { @@ -6622,9 +6569,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.20.0" + "source": "https://github.com/vimeo/psalm/tree/4.21.0" }, - "time": "2022-02-03T17:03:47+00:00" + "time": "2022-02-18T04:34:15+00:00" }, { "name": "webmozart/path-util", @@ -6681,6 +6628,7 @@ "aliases": [], "minimum-stability": "stable", "stability-flags": { + "gettext/gettext": 20, "simplesamlphp/simplesamlphp-module-adfs": 5 }, "prefer-stable": false, diff --git a/lib/SimpleSAML/Locale/Localization.php b/lib/SimpleSAML/Locale/Localization.php index 9342ee538..d88127b04 100644 --- a/lib/SimpleSAML/Locale/Localization.php +++ b/lib/SimpleSAML/Locale/Localization.php @@ -10,10 +10,8 @@ declare(strict_types=1); namespace SimpleSAML\Locale; -use Gettext\Loader\PoLoader; use Gettext\Translations; use Gettext\Translator; -use Gettext\TranslatorFunctions; use SimpleSAML\Configuration; use SimpleSAML\Logger; @@ -86,15 +84,6 @@ class Localization } - /** - * @return \GetText\Translator - */ - public function getTranslator(): Translator - { - return $this->translator; - } - - /** * Dump the default locale directory * @@ -207,7 +196,7 @@ class Localization private function setupTranslator(): void { $this->translator = new Translator(); - TranslatorFunctions::register($this->translator); + $this->translator->register(); } @@ -241,9 +230,8 @@ class Localization $poFile = $domain . '.po'; $poPath = $langPath . $poFile; if (file_exists($poPath) && is_readable($poPath)) { - $poLoader = new PoLoader(); - $translations = $poLoader->loadFile($poPath); - $this->translator = Translator::createFromTranslations($translations); + $translations = Translations::fromPoFile($poPath); + $this->translator->loadTranslations($translations); } else { $error = "Localization file '$poFile' not found in '$langPath', falling back to default"; Logger::debug($_SERVER['PHP_SELF'] . ' - ' . $error); diff --git a/lib/SimpleSAML/Locale/Translate.php b/lib/SimpleSAML/Locale/Translate.php index 230ce68ff..f8468dd03 100644 --- a/lib/SimpleSAML/Locale/Translate.php +++ b/lib/SimpleSAML/Locale/Translate.php @@ -10,7 +10,7 @@ declare(strict_types=1); namespace SimpleSAML\Locale; -use Gettext\Translator; +use Gettext\BaseTranslator; use SimpleSAML\Assert\Assert; use SimpleSAML\Configuration; use SimpleSAML\Logger; @@ -81,8 +81,7 @@ class Translate // This may happen if you forget to set a variable and then run undefinedVar through the trans-filter $original = $original ?? 'undefined variable'; - $loc = new Localization(Configuration::getInstance()); - $text = $loc->getTranslator()->gettext($original); + $text = BaseTranslator::$current->gettext($original); if (func_num_args() === 1) { return $text; @@ -99,17 +98,16 @@ class Translate * * @param string|null $original The string before translation. * @param string $plural - * @param int $value + * @param string $value * * @return string The translated string. */ - public static function translatePluralGettext(?string $original, string $plural, int $value): string + public static function translatePluralGettext(?string $original, string $plural, string $value): string { // This may happen if you forget to set a variable and then run undefinedVar through the trans-filter $original = $original ?? 'undefined variable'; - $loc = new Localization(Configuration::getInstance()); - $text = $loc->getTranslator()->ngettext($original, $plural, $value); + $text = BaseTranslator::$current->ngettext($original, $plural, $value); if (func_num_args() === 3) { return $text; -- GitLab