Skip to content

Encode HTML special characters in lang texts via lang_secure()#519

Merged
darknoon29 merged 4 commits intodevelopfrom
copilot/fix-html-encoding-lang-texts
Apr 3, 2026
Merged

Encode HTML special characters in lang texts via lang_secure()#519
darknoon29 merged 4 commits intodevelopfrom
copilot/fix-html-encoding-lang-texts

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 13, 2026

Lang strings containing special HTML characters (e.g. &, <, >, ", ') were echoed raw into HTML, producing malformed output. The lang_secure() function existed for this purpose but was disabled pending a lang file cleanup.

Changes

Lang file cleanup (48 files, all languages)

  • Decoded pre-encoded HTML entities in $lang values (&amp;&, &rsquo;', &quot;") to prevent double-encoding once lang_secure() is active
  • Replaced <br> tags in regular strings with \nlang_print() already converts \n<br> after encoding
  • Stripped decorative <a> wrapper tags from admin/install strings (French reference has plain text)
  • help_* keys left untouched — they contain intentional HTML for tooltip rendering

includes/help.php

Added html_entity_decode() before embedding a lang value into the tooltip HTML table. This reverses lang_secure() encoding for help strings so their intentional HTML (<font>, <br>, <i>) is preserved through the htmlentities() / html_entity_decode() round-trip used by ToolTip_Helper.

// Decode HTML entities introduced by lang_secure() so that intentional HTML in help strings is preserved
$value = html_entity_decode($value, ENT_QUOTES | ENT_HTML5, 'UTF-8');

lang/lang_main.php

Removed the TODO comment and enabled the existing lang_secure() call:

$lang = lang_secure($lang);

Tests

Added tests/unit/LangTest.php covering lang_print() and lang_secure() for &, <, >, ", ', newline→<br> conversion, and non-HTML mode.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/repos/PHPMailer/PHPMailer/zipball/ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/Seldaek/monolog/zipball/b321dd6749f0bf7189444158a3ce785cc16d69b0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/components/jquery/zipball/8edc7785239bb8c2ad2b83302b856a1d61de60e7
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/iamceege/tooltipster/zipball/0daaeffdc7da578f4048c4cf9ad2f37a474144f0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/90f41072d220e5c40df6e8635f5dafba2d9d4d04
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/comparator/zipball/6a7de5df2e094f9a80b40a522391a7e6022df5f6
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/environment/zipball/24a711b5c916efc6d6e62aa65aa2ec98fef77f68
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/exporter/zipball/016951ae10980765e4e7aee491eb288c64e505b7
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/global-state/zipball/ef1377171613d09edd25b7816f05be8313f9115d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/97ffee3bcfb5805568d6af7f0f893678fc076d2f
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/b015312f28dd75b75d3422ca37dff2cd1a565e8d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/phpunit/zipball/47283cfd98d553edcb1353591f4e255dc1bb61f0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/type/zipball/e549163b9760b8f71f191651d22acf32d56d6d4d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)
  • https://api.github.com/repos/theseer/tokenizer/zipball/7989e43bf381af0eac72e4f0ca5bcbfa81658be4
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/M4nnRg /usr/bin/composer install --no-interaction (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>Encodage HTML des textes lang</issue_title>
<issue_description>Actuellement, les textes de lang sont affichés simplement avec un echo or certains texte contiennent des caractères spéciaux HTML, qui ne faut pas utiliser tel quel comme &.</issue_description>

<agent_instructions>Please chack we need to do here before changing code, create a pr when you are ready to make changes
</agent_instructions>

Comments on the Issue (you are @copilot in this section)

@darknoon29 ![image](https://user-images.githubusercontent.com/13015521/232058943-8dec4de0-1a40-4a3d-84bd-c32d9856bd4d.png) @darknoon29 HTML entity encoding: replace the following characters by HTML-safe sequences.
& → &amp;
< → &lt;
> → &gt;
" → &quot;
' → &#x27;
```</body></comment_new>
</comments>


💬 Send tasks to Copilot coding agent from Slack and Teams to turn conversations into code. Copilot posts an update in your thread when it's finished.

…(), fix help.php, add tests

Co-authored-by: darknoon29 <13015521+darknoon29@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix HTML encoding for lang texts Encode HTML special characters in lang texts via lang_secure() Mar 13, 2026
Copilot AI requested a review from darknoon29 March 13, 2026 10:25
@darknoon29 darknoon29 requested a review from Copilot March 13, 2026 11:54
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Enables HTML-escaping of language strings by activating the existing lang_secure() mechanism, while cleaning up translation files so UI output is no longer malformed/double-encoded and line breaks are handled consistently.

Changes:

  • Enabled $lang = lang_secure($lang); so all non-help lang strings are safely HTML-escaped (including newline → <br> conversion).
  • Cleaned up many lang files to remove pre-encoded entities / inline HTML like <br> and decorative <a> wrappers to prevent double-encoding.
  • Adjusted tooltip help rendering to preserve intentional HTML in help_* strings; added unit tests for lang_print() / lang_secure().

Reviewed changes

Copilot reviewed 51 out of 51 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
includes/help.php Decodes entities for help_* values before tooltip HTML generation to preserve intentional HTML after lang_secure().
lang/lang_main.php Enables lang_secure() globally for loaded language arrays.
tests/unit/LangTest.php Adds unit tests for HTML escaping and newline handling in lang_print() / lang_secure().
lang/pt_BR/lang_statistic.php Replaces <br> with \n to align with lang_print() newline handling.
lang/pt_BR/lang_login.php Replaces <br> with \n to avoid escaped <br> rendering.
lang/pt_BR/lang_install.php Removes embedded <a> markup / replaces <br> with \n to avoid escaped HTML in installer strings.
lang/pt_BR/lang_admin.php Removes decorative <a> wrappers and relies on safe text rendering via lang_secure().
lang/pt/lang_login.php Replaces <br> with \n for consistent line breaks under lang_secure().
lang/it_IT/lang_login.php Replaces <br> with \n for consistent line breaks under lang_secure().
lang/it_CH/lang_login.php Replaces <br> with \n for consistent line breaks under lang_secure().
lang/it/lang_statistic.php Replaces <br> with \n to align with lang_print() newline handling.
lang/it/lang_login.php Replaces <br> with \n for consistent line breaks under lang_secure().
lang/it/lang_install.php Removes embedded <a> markup / replaces <br> with \n to avoid escaped HTML.
lang/it/lang_admin.php Removes decorative <a> wrappers and relies on safe text rendering via lang_secure().
lang/hr_HR/lang_statistic.php Replaces <br> with \n to align with lang_print() newline handling.
lang/hr_HR/lang_login.php Replaces <br> with \n for consistent line breaks under lang_secure().
lang/hr_HR/lang_install.php Replaces <br> with \n to avoid escaped HTML.
lang/hr_HR/lang_admin.php Removes decorative <a> wrappers and relies on safe text rendering via lang_secure().
lang/hr/lang_statistic.php Replaces <br> with \n to align with lang_print() newline handling.
lang/hr/lang_login.php Replaces <br> with \n for consistent line breaks under lang_secure().
lang/hr/lang_install.php Replaces <br> with \n to avoid escaped HTML.
lang/hr/lang_admin.php Removes decorative <a> wrappers and relies on safe text rendering via lang_secure().
lang/fr/lang_statistic.php Replaces <br> with \n to align with lang_print() newline handling.
lang/fr/lang_profile.php Normalizes pre-encoded entities so lang_secure() doesn’t double-encode.
lang/fr/lang_login.php Replaces <br> with \n for consistent line breaks under lang_secure().
lang/fr/lang_install.php Replaces <br> with \n to avoid escaped HTML.
lang/fr/lang_home.php Normalizes pre-encoded &amp; to & to prevent double-encoding under lang_secure().
lang/fr/lang_help.php Normalizes entity usage in help strings while keeping intentional HTML (help-specific handling is in includes/help.php).
lang/es/lang_statistic.php Replaces <br> with \n to align with lang_print() newline handling.
lang/es/lang_login.php Replaces <br> with \n for consistent line breaks under lang_secure().
lang/es/lang_install.php Removes embedded <a> markup / replaces <br> with \n to avoid escaped HTML.
lang/es/lang_admin.php Removes decorative <a> wrappers and relies on safe text rendering via lang_secure().
lang/en_US/lang_statistic.php Replaces <br> with \n to align with lang_print() newline handling.
lang/en_US/lang_login.php Replaces <br> with \n for consistent line breaks under lang_secure().
lang/en_US/lang_install.php Removes embedded <a> markup / replaces <br> with \n to avoid escaped HTML.
lang/en_US/lang_admin.php Removes decorative <a> wrappers and relies on safe text rendering via lang_secure().
lang/en/lang_statistic.php Replaces <br> with \n to align with lang_print() newline handling.
lang/en/lang_login.php Replaces <br> with \n for consistent line breaks under lang_secure().
lang/en/lang_install.php Removes embedded <a> markup / replaces <br> with \n to avoid escaped HTML.
lang/en/lang_home.php Normalizes pre-encoded &amp; to & to prevent double-encoding under lang_secure().
lang/en/lang_help.php Normalizes entity usage in help strings while keeping intentional HTML (help-specific handling is in includes/help.php).
lang/en/lang_admin.php Removes decorative <a> wrappers and relies on safe text rendering via lang_secure().
lang/de/lang_login.php Replaces <br> with \n for consistent line breaks under lang_secure().
lang/bs_BA/lang_statistic.php Replaces <br> with \n to align with lang_print() newline handling.
lang/bs_BA/lang_login.php Replaces <br> with \n for consistent line breaks under lang_secure().
lang/bs_BA/lang_install.php Replaces <br> with \n to avoid escaped HTML.
lang/bs_BA/lang_admin.php Removes decorative <a> wrappers and relies on safe text rendering via lang_secure().
lang/bs/lang_statistic.php Replaces <br> with \n to align with lang_print() newline handling.
lang/bs/lang_login.php Replaces <br> with \n for consistent line breaks under lang_secure().
lang/bs/lang_install.php Replaces <br> with \n to avoid escaped HTML.
lang/bs/lang_admin.php Removes decorative <a> wrappers and relies on safe text rendering via lang_secure().

Comment thread tests/unit/LangTest.php
Comment on lines +40 to +44
public function testLangPrintEncodesSingleQuote(): void
{
$result = lang_print("L'ancien mot de passe");
$this->assertEquals('L&apos;ancien mot de passe', $result);
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot apply changes based on this feedback

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No change needed here. The concern was that &apos; might be wrong, but htmlspecialchars() with ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE does produce &apos; — that's the HTML5 named entity for single quotes. The &#039; encoding only occurs without the ENT_HTML5 flag. The test is already asserting the correct actual output and all 9 Lang tests pass on PHP 8.3.

Comment thread lang/en_US/lang_admin.php Outdated
$lang['ADMIN_PARAMS_DURATION_SPYREPORTS'] = "Spy reports storage <a>[1-999 days or number]</a>";
$lang['ADMIN_PARAMS_DURATION_SPYREPORTS'] = "Spy reports storage [1-999 days or number]";
$lang['ADMIN_PARAMS_MAX_SPYREPORTS'] = "Spy reports storage / planet [1-50]";
$lang['ADMIN_PARAMS_DURATION_SPYREPORTS'] = "Spy reports storage [1-999 days or number]";
Comment thread lang/pt_BR/lang_admin.php Outdated
Comment on lines +34 to +35
$lang['ADMIN_DISPLAY_STATS_GVIEW'] = "Número de galáxias por linha[1-100]";
$lang['ADMIN_DISPLAY_STATS_SVIEW'] = "Número de sistemas por linha [1-100]";
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot apply changes based on this feedback

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was already fixed in 624eb9b — lines 34 and 35 in lang/pt_BR/lang_admin.php now read "linha [1-100]" with the space.

@darknoon29
Copy link
Copy Markdown
Member

@copilot apply changes based on the comments in this thread

…in pt_BR lang

Co-authored-by: darknoon29 <13015521+darknoon29@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 14, 2026

@copilot apply changes based on the comments in this thread

Done in 624eb9b:

  • Removed the duplicate ADMIN_PARAMS_DURATION_SPYREPORTS key from all 10 affected lang files (fr, en, en_US, es, it, pt_BR, hr, hr_HR, bs, bs_BA) — the pre-existing double assignment was also present in the French reference
  • Fixed missing space in lang/pt_BR/lang_admin.php line 34: "linha[1-100]""linha [1-100]"
  • The single-quote test assertion (&apos;) is correct — PHP's htmlspecialchars() with ENT_QUOTES | ENT_HTML5 produces &apos; for single quotes, and the test passes

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/repos/PHPMailer/PHPMailer/zipball/ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/Seldaek/monolog/zipball/b321dd6749f0bf7189444158a3ce785cc16d69b0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/components/jquery/zipball/8edc7785239bb8c2ad2b83302b856a1d61de60e7
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/iamceege/tooltipster/zipball/0daaeffdc7da578f4048c4cf9ad2f37a474144f0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/90f41072d220e5c40df6e8635f5dafba2d9d4d04
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/comparator/zipball/6a7de5df2e094f9a80b40a522391a7e6022df5f6
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/environment/zipball/24a711b5c916efc6d6e62aa65aa2ec98fef77f68
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/exporter/zipball/016951ae10980765e4e7aee491eb288c64e505b7
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/global-state/zipball/ef1377171613d09edd25b7816f05be8313f9115d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/97ffee3bcfb5805568d6af7f0f893678fc076d2f
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/b015312f28dd75b75d3422ca37dff2cd1a565e8d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/phpunit/zipball/47283cfd98d553edcb1353591f4e255dc1bb61f0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/type/zipball/e549163b9760b8f71f191651d22acf32d56d6d4d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/theseer/tokenizer/zipball/7989e43bf381af0eac72e4f0ca5bcbfa81658be4
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/81gdqC /usr/bin/composer install --no-interaction -q (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 31, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/repos/PHPMailer/PHPMailer/zipball/ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/Seldaek/monolog/zipball/b321dd6749f0bf7189444158a3ce785cc16d69b0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/components/jquery/zipball/8edc7785239bb8c2ad2b83302b856a1d61de60e7
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/iamceege/tooltipster/zipball/0daaeffdc7da578f4048c4cf9ad2f37a474144f0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/90f41072d220e5c40df6e8635f5dafba2d9d4d04
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/comparator/zipball/6a7de5df2e094f9a80b40a522391a7e6022df5f6
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/environment/zipball/24a711b5c916efc6d6e62aa65aa2ec98fef77f68
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/exporter/zipball/016951ae10980765e4e7aee491eb288c64e505b7
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/global-state/zipball/ef1377171613d09edd25b7816f05be8313f9115d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/97ffee3bcfb5805568d6af7f0f893678fc076d2f
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/b015312f28dd75b75d3422ca37dff2cd1a565e8d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/phpunit/zipball/47283cfd98d553edcb1353591f4e255dc1bb61f0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/type/zipball/e549163b9760b8f71f191651d22acf32d56d6d4d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)
  • https://api.github.com/repos/theseer/tokenizer/zipball/7989e43bf381af0eac72e4f0ca5bcbfa81658be4
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/F8cQWQ /usr/bin/composer install --no-interaction -q (http block)

If you need me to access, download, or install something from one of these locations, you can either:

@darknoon29 darknoon29 marked this pull request as ready for review April 3, 2026 07:16
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Apr 3, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
0.0% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

@darknoon29 darknoon29 merged commit b2abb30 into develop Apr 3, 2026
2 of 3 checks passed
@darknoon29 darknoon29 deleted the copilot/fix-html-encoding-lang-texts branch April 3, 2026 07:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Encodage HTML des textes lang

3 participants