Up to PHP 8.1 the int keys are sorted last.
From PHP 8.2 the int keys are sorted first.
The current .mo test file has the original string 12345 in the end.
This was ok until PHP 8.2.
This PR makes sure that the strings of the generated .mo file are sorted by the original, comparing all keys as strings and outputs the strings with numbers before the ones with letters.
Another string is added to the test to make sure that the original 12345 is sorted before 15 (compared as strings, as it's supposed)
The result of the translations array before output to .mo file is:
Since PHP 8.2 that ksort() deals with int/string keys differently. https://php.watch/versions/8.2/ksort-SORT_REGULAR-order-changes
Up to PHP 8.1 the int keys are sorted last. From PHP 8.2 the int keys are sorted first.
The current .mo test file has the original string
12345
in the end. This was ok until PHP 8.2.This PR makes sure that the strings of the generated
.mo
file are sorted by the original, comparing all keys as strings and outputs the strings with numbers before the ones with letters.Another string is added to the test to make sure that the original
12345
is sorted before15
(compared as strings, as it's supposed)The result of the translations array before output to
.mo
file is:12345
15
Original
Other comment
Fixes #298